Creating
attachments to messages
The messaging framework allows you to create attachments to be
added to messages.
Attachments to
messages are created as empty files before they are filled and added to a
message.
-
Create an active object implementation. All the
MMsvAttachmentManager
functions
that modify attachments for an entry are asynchronous, so a request must be
called with an active object implementation.
void CFoo::CreateAttachmentL(CMsvEntry& aEntry )
{
_LIT(KFileName, "textfile.txt");
...
// Wait for request to complete
User::WaitForRequest(status);
// Write to the file at the current offset within the file.
User::LeaveIfError(file.Write(_L8("text file as attachment")));
CleanupStack::PopAndDestroy(&file);
CleanupStack::PopAndDestroy(store);
}
-
Get the details
of the message to which you want to add an attachment using
CMsvEntry::EditStoreL()
.
CMsvStore* store = aEntry.EditStoreL();
CleanupStack::PushL(store);
This function returns
CMsvStore
in writable mode.
-
Get an
MMsvAttachmentManager
attachment
manager for the message entry, using
CMsvStore::AttachmentManagerL()
.
MMsvAttachmentManager& attManager = store->AttachmentManagerL();
-
Create a new attachment attributes object using the
CMsvAttachment::NewL()
function.
// create a new attachment attributes object
CMsvAttachment* attachment = CMsvAttachment::NewL(CMsvAttachment::EMsvFile);
CleanupStack::PushL(attachment);
// set attachment file name
attachment->SetAttachmentNameL(KFileName());
-
Initialise a file handle.
// A file handle
RFile file;
CleanupClosePushL(file);
TRequestStatus status;
-
Create a new attachment using the
MMsvAttachmentManager::CreateAttachmentL()
function.
The
CreateAttachmentL()
function creates a new empty
attachment file and returns an open writable file handle to the empty attachment
file in the Message Store. You must pass an uninitialised file handle. The
file handle cannot be used until the asynchronous request completes successfully.
If the request is successful, the file handle is opened for writing.
// CreateAttachmentL API will return an open writable file handle
// to an empty attachment file in the message store.
attManager.CreateAttachmentL(KFileName, file, attachment, status);
-
Commit the store.
// Commit the store
store->CommitL();
The result of creating
an attachment is an empty file with a handle opened for writing.
You can now add
the attachment to a file and retrieve and modify it.
Related information
Attachment
Tutorial
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.