/* ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- */ void CFakeSMSSender::AppendMessageDataL(TMsvId aEntryId,const TDesC& aRecipient) { CMsvEntry* entry = iMsvSession->GetEntryL(aEntryId); CleanupStack::PushL(entry); CSmsClientMtm* MySmsMtm = static_cast<CSmsClientMtm*>(iMtmReg->NewMtmL(KUidMsgTypeSMS)); MySmsMtm->SetCurrentEntryL(entry); CleanupStack::Pop(); //entry entry = NULL; CleanupStack::PushL(MySmsMtm); MySmsMtm->RestoreServiceAndSettingsL(); CMsvStore* srore = MySmsMtm->Entry().EditStoreL(); CleanupStack::PushL(srore); if(srore) { MySmsMtm->SmsHeader().RestoreL(*srore); } CleanupStack::PopAndDestroy(srore); CSmsHeader& header = MySmsMtm->SmsHeader(); if (header.Message().ServiceCenterAddress().Length() == 0) { CSmsSettings* serviceSettings = &(MySmsMtm->ServiceSettings()); const TInt numSCAddresses = serviceSettings->ServiceCenterCount(); if (numSCAddresses) { TInt scIndex=0; scIndex = serviceSettings->DefaultServiceCenter(); if ((scIndex < 0) || (scIndex >= numSCAddresses)) { scIndex = 0; //??? } //get the service center number: TPtrC serviceCentreNumber = serviceSettings->GetServiceCenter(scIndex).Address(); //This can only be used on SMS-SUBMIT type messages. The message PDU //type can be checked by using the CSmsHeader::Type API. header.SetServiceCenterAddressL(serviceCentreNumber); } } MySmsMtm->SmsHeader().SetFromAddressL(aRecipient); MySmsMtm->SaveMessageL(); CleanupStack::PopAndDestroy(1);//MySmsMtm }