Create a session
with the SendAs Server using the RSendAs::Connect() function.
Connect to the server
using the default number of message slots available to a session, which is
4, (KSendAsDefaultMessageSlots).
Set the message
entry using the CMsvEntry::SetEntryL() function.
Get the IDs of all
the context children, using the CMsvEntry::ChildrenL() function.
Empty the draft folder before creating a new message using the CleanMessageFolderL() function.
// SendAs2Example.h
...
class CSendAs2Example : public CBase
{
public:
static CSendAs2Example* NewL();
~CSendAs2Example();
void StartL();
void Connect();
void CreateL(RSendAsMessage& aMessage);
void DisplayAccountL();
void CapabilityFilterL();
void SendL(RSendAsMessage& aMessage);
private:
CSendAs2Example();
void ConstructL();
void CleanMessageFolderL();
private:
/** Pointer to the console interface */
CConsoleBase* iConsole;
RSendAs iSendAs;
/** Pointer to Session observer used to report whatever notification it receives */
CDummyObserver* iObserver;
/** Pointer to the channel of communication between a client thread and the Message Server */
CMsvSession* iSession;
/** Pointer to a particular Message Server entry */
CMsvEntry* iEntry;
/** Pointer to the array of entry IDs */
CMsvEntrySelection* iSelection;
};// SendAs2Example.cpp
...
/**
Allocates and constructs a CSendAs2Example object.
Initialises all member data to their default values.
*/
CSendAs2Example* CSendAs2Example::NewL()
{
CSendAs2Example* self = new (ELeave) CSendAs2Example();
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop();
return self;
}
/**
Constructor
*/
CSendAs2Example::CSendAs2Example()
{
}
...
/**
Creates a session
- based on the time slots
- connects to the server
@leave system wide error codes
*/
void CSendAs2Example::Connect()
{
iConsole->Printf ( KTextConn );
TInt err = iSendAs.Connect(KSendAsDefaultMessageSlots);
if ( err == KErrNone)
{
iConsole->Printf ( KTextErrInn );
}
else
{
iConsole->Printf ( KTextErrOut );
}
}