harvesterplugins/tsrc/harvesterplugintester/src/cmessagesessionobserver.cpp
changeset 7 51d10d255e92
parent 0 ccd0fd43f247
child 9 4a2987baf8f7
--- a/harvesterplugins/tsrc/harvesterplugintester/src/cmessagesessionobserver.cpp	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/tsrc/harvesterplugintester/src/cmessagesessionobserver.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -109,30 +109,35 @@
 TInt MessagingUtils::CreateMessageL(CMsvSession* aMsgSession, const TDesC& aMsgFrom,
                                     const TDesC& aMsgTo,const TDesC& aMsgBody)
     {
+    CSmsClientMtm* smsMtm = NULL;
+    TMsvId newMsgId = NULL;
     CClientMtmRegistry* mtmReg = CClientMtmRegistry::NewL( *aMsgSession );
-    CSmsClientMtm* smsMtm = static_cast<CSmsClientMtm*>( mtmReg->NewMtmL( KUidMsgTypeSMS )); 
-    smsMtm->SwitchCurrentEntryL( KMsvGlobalInBoxIndexEntryId );
-    smsMtm->CreateMessageL( KUidMsgTypeSMS.iUid );
-    TMsvId newMsgId = smsMtm->Entry().EntryId();
-    smsMtm->AddAddresseeL( aMsgTo ); //to address if need
-    CMsvStore* messageStore = smsMtm->Entry().EditStoreL();
-    CleanupStack::PushL( messageStore );
-    CSmsHeader& header = smsMtm->SmsHeader();
-    header.SetFromAddressL(aMsgFrom);
-    header.StoreL( *messageStore );
-    CleanupStack::PopAndDestroy( messageStore );
-    CRichText& body = smsMtm->Body();
-    body.Reset();
-    // Put 16bits stream stored in 8bits buffer back to 16bits buffer.
-    body.InsertL( 0, aMsgBody);
-    TMsvEntry entry = smsMtm->Entry().Entry();
-    entry.SetInPreparation( EFalse );
-    entry.SetVisible( ETrue );
-    entry.iDate.HomeTime();
-    entry.iDetails.Set(aMsgFrom);
-    entry.SetUnread( EFalse );
-    smsMtm->Entry().ChangeL( entry );
-    smsMtm->SaveMessageL(); 
+    TRAPD(err,smsMtm = static_cast<CSmsClientMtm*>( mtmReg->NewMtmL( KUidMsgTypeSMS )));
+    if( err == KErrNone)
+        {
+        smsMtm->SwitchCurrentEntryL( KMsvGlobalInBoxIndexEntryId );
+        smsMtm->CreateMessageL( KUidMsgTypeSMS.iUid );
+        newMsgId = smsMtm->Entry().EntryId();
+        smsMtm->AddAddresseeL( aMsgTo ); //to address if need
+        CMsvStore* messageStore = smsMtm->Entry().EditStoreL();
+        CleanupStack::PushL( messageStore );
+        CSmsHeader& header = smsMtm->SmsHeader();
+        header.SetFromAddressL(aMsgFrom);
+        header.StoreL( *messageStore );
+        CleanupStack::PopAndDestroy( messageStore );
+        CRichText& body = smsMtm->Body();
+        body.Reset();
+        // Put 16bits stream stored in 8bits buffer back to 16bits buffer.
+        body.InsertL( 0, aMsgBody);
+        TMsvEntry entry = smsMtm->Entry().Entry();
+        entry.SetInPreparation( EFalse );
+        entry.SetVisible( ETrue );
+        entry.iDate.HomeTime();
+        entry.iDetails.Set(aMsgFrom);
+        entry.SetUnread( EFalse );
+        smsMtm->Entry().ChangeL( entry );
+        smsMtm->SaveMessageL();
+        }
     delete smsMtm;
     delete mtmReg;
     return newMsgId;