serviceproviders/sapi_messaging/messagingservice/src/messagingservice.cpp
changeset 22 fc9cf246af83
parent 19 989d2f495d90
child 33 50974a8b132e
--- a/serviceproviders/sapi_messaging/messagingservice/src/messagingservice.cpp	Fri Jul 03 15:51:24 2009 +0100
+++ b/serviceproviders/sapi_messaging/messagingservice/src/messagingservice.cpp	Thu Aug 27 07:43:07 2009 +0300
@@ -20,6 +20,7 @@
 #include <msvstd.h>
 #include <msvapi.h>
 #include <msvids.h>
+#include <senduiconsts.h>
 
 #include "messageheader.h"
 #include "messagingservice.h"
@@ -96,6 +97,18 @@
 		{
 		CMessageDetail* detailObj = NULL;
 		
+		CMsvEntry * messageEntry = iMsgServerSession->GetEntryL( aMessageParam->TemplateId() );
+		
+	    CleanupStack::PushL(messageEntry);
+		
+	    if ( aMessageParam->MessageType() == KSenduiMtmSmsUid && 
+	            messageEntry->Entry().iMtm == KSenduiMtmMmsUid )
+            {
+            User::Leave( KErrNotSupported );
+            }
+				
+	    CleanupStack::PopAndDestroy(messageEntry);
+		
 		detailObj = CMessageDetail::NewL( *iMsgServerSession );
 		
 		CleanupStack::PushL( detailObj );
@@ -204,7 +217,7 @@
 //
 EXPORT_C void CMessagingService::GetIdListL( CFilterParamInfo* aFilterParams,
 											TMsvId /*aFolderId*/,
-									        CMsgCallbackBase* 	/*aCallback*/,
+									        CMsgCallbackBase* 	aCallback,
 									        CMsvEntrySelection*& aEntrySelection )
 	{
 	// Hard coding for Inbox/Draft
@@ -215,9 +228,19 @@
 	
 	CleanupStack::PushL( obj );
 	
+	obj->SetInputParamsL(aCallback,this);
+	
+	if ( aCallback )
+	{
+	AddAsyncObjL( aCallback->iTransactionId,obj);
+	}
+	
 	obj->GetIdListL( folderId, aFilterParams, aEntrySelection );
 	
-	CleanupStack::PopAndDestroy( obj );
+	CleanupStack::Pop( obj );
+	
+	if ( !aCallback )
+	    delete obj;
 	}
 
 EXPORT_C void CMessagingService::GetNextHeaderL( CFilterParamInfo* aFilterParams,