diff -r 3bc31ad99ee7 -r 51d10d255e92 harvesterplugins/tsrc/harvesterplugintester/src/cmessagesessionobserver.cpp --- 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( 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( 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;