×
Namespaces

Variants
Actions
Revision as of 13:20, 15 December 2011 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

How to create a SMS with attachment in inbox

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

文章
xueyw 在 20 Sep 2007 创建
最后由 hamishwillee 在 15 Dec 2011 编辑
CMsvSession* messageSession;
CClientMtmRegistry* registry;
TFileName details;
TFileName description;
TFileName fileName;
TEntryInfoHolder infoHolder;
 
messageSession = CMsvSession::OpenSyncL(*this);
CleanupStack::PushL(messageSession);
 
registry = CClientMtmRegistry::NewL( *messageSession );
CleanupStack::PushL( registry );
 
infoHolder.messageSession = messageSession;
infoHolder.iEntryId = 0; // No entry yet !
CleanupStack::PushL( TCleanupItem( DeleteEntry, &infoHolder ) );
 
// Subject
_LIT(KSub, "InterGrafx");
details.Copy( KSub() );
 
// Description
description.Copy( igpFileName );
 
// Get message inbox
CMsvEntry* inbox=messageSession->GetEntryL( KMsvGlobalInBoxIndexEntryIdValue );
CleanupStack::PushL( inbox );
 
TMsvEntry newEntry;
 
 
// Child entry of inbox
// TMsvEntry
#ifdef __UIQV21__
newEntry.iMtm = TUid::Uid( KUidMsgTypeBT );
#endif
 
#ifdef __S60V12__
newEntry.iMtm = TUid::Uid( KUidMsgTypeBt );
#endif //
#ifdef __S60V22__
newEntry.iMtm = TUid::Uid( KUidMsgTypeBt.iUid );
#endif //__S60V22__
newEntry.SetVisible( EFalse );
newEntry.SetInPreparation( ETrue );
newEntry.iType = KUidMsvMessageEntry;
newEntry.iServiceId = KMsvUnknownServiceIndexEntryId;
newEntry.iDate.HomeTime();
newEntry.iSize = 120553;//todo
newEntry.iDetails.Set( details );
newEntry.iDescription.Set( description );
 
// For bio
// For future usage
//newEntry.iBioType = 0x101F3CD9;
//newEntry.iMtmData3 = 1;
//KMmsMessageMRetrieveConf | KMmsMessageMobileTerminated; // this defines MT message
//newEntry.iMtmData1 = 0;
//newEntry.iMtmData2 = 0;
//TUid aTypeUid;
//aTypeUid.iUid = 0x10000F6A;
//newEntry.iType = aTypeUid;
//TUid aMtmUid;
//aMtmUid.iUid = 0x10001262;
//newEntry.iMtm = aMtmUid;
 
inbox->CreateL(newEntry);
infoHolder.iEntryId=newEntry.Id();
 
CClientMtmRegistry* mtmReg = CClientMtmRegistry::NewL( *messageSession );
CleanupStack::PushL( mtmReg );
 
// Child entry of inbox
// CMsvEntry
CMsvEntry* entry = messageSession->GetEntryL( newEntry.Id() );
CleanupStack::PushL( entry );
 
CBaseMtm *mtm = mtmReg->NewMtmL( entry->Entry().iMtm );
// takes ownership
// The attachment will belong to it
mtm->SetCurrentEntryL( entry );
CleanupStack::Pop(); // entry
CleanupStack::PushL( mtm );
 
// Create an empty attachment
// On return, we get values of attachmentId, tempfileName
TFileName tempfileName;
TMsvId attachmentId;
mtm->CreateAttachmentL( attachmentId, tempfileName );
 
// Construct the path of the file to be created as attachment
HBufC* completeFilePath = HBufC::NewLC( 500 );
TPtr completeFilePathPtr = completeFilePath->Des();
completeFilePathPtr.Append( tempfileName );
completeFilePathPtr.Append( description );


Links

Best regards http://www.devdiv.com/

This page was last modified on 15 December 2011, at 13:20.
103 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×