Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The IMessage interface is used for managing messages, attachments, and recipients.
Methods in Vtable Order
| IMessage methods | Description |
|---|---|
| GetAttachmentTable | Returns the message's attachment table. |
| OpenAttach | Opens an attachment. |
| CreateAttach | Creates a new attachment. |
| DeleteAttach | Deletes an attachment. |
| GetRecipientTable | Returns the message's recipient table. |
| ModifyRecipients | Adds, deletes, or modifies message recipients. |
| SubmitMessage | Saves all changes to the message and marks it as ready for sending. |
| SetReadFlag | Not supported — do not use. |
Properties
The properties listed in the following table are required on messages at some point during their life cycle. Read-only properties are set by the transport provider.
| Required properties for messages of all classes | Access |
|---|---|
| PR_ENTRYID | Read-only |
| PR_LAST_MODIFICATION_TIME | Read-only |
| PR_MESSAGE_CLASS | Read/write |
| PR_MESSAGE_FLAGS | Read/write |
| PR_MESSAGE_SIZE | Read-only |
| PR_PARENT_ENTRYID | Read-only |
| PR_RECIPIENT_TYPE | Read-only |
| PR_SENDER_EMAIL_ADDRESS | Read-only |
| PR_SENDER_NAME | Read-only |
The properties listed in the following tables are all read-only to clients, with the exception of PR_BODY. Clients construct this property when they process a report.
| Properties for report messages | Access |
|---|---|
| PR_BODY | Read/write |
| PR_MESSAGE_CLASS | Read-only |
| PR_MESSAGE_DELIVERY_TIME | Read-only |
| PR_SENDER_EMAIL_ADDRESS | Read-only |
| PR_SENDER_NAME | Read-only |
| PR_SUBJECT | Read-only |
| Properties for message recipients | Access | Required or optional |
|---|---|---|
| PR_ADDRTYPE | Read-only | Required |
| PR_EMAIL_ADDRESS | Read-only | Optional |
| PR_ENTRYID | Read-only | Required |
Remarks
IMessage, implemented by message store providers and called by client applications, is exposed by message objects. Its interface identifier is IID_Message, and its pointer type is LPMESSAGE.
Code Example
The following code example demonstrates how to use IMessage::GetProps.
Note To make the following code example easier to read, security checking and error handling are not included. This code example should not be used in a release configuration unless it has been modified to include them.
HRESULT GetPropsExample(IMessage * pMsg)
{
HRESULT hr = E_FAIL;
SPropValue * rgprops = NULL;
ULONG rgTags[] = {3, PR_SENDER_EMAIL_ADDRESS, PR_SUBJECT, PR_IMPORTANCE};
ULONG cCount = 0;
// Get the message's properties.
hr = pMsg->GetProps((LPSPropTagArray) rgTags, MAPI_UNICODE, &cCount, &rgprops);
// Access the properties that were just retrieved.
if (SUCCEEDED(hr))
{
// Check that the ulPropTag member of each property value is of the property type requested,
// and that it does not have a value of PT_ERROR.
if (rgprops[0].ulPropTag == PR_SENDER_EMAIL_ADDRESS)
{
DEBUGMSG(TRUE, (L"From: %s \r\n", rgprops[0].Value.lpszW));
}
if (rgprops[1].ulPropTag == PR_SUBJECT)
{
DEBUGMSG(TRUE, (L"Subject: %s \r\n", rgprops[1].Value.lpszW));
}
if (rgprops[2].ulPropTag == PR_IMPORTANCE)
{
DEBUGMSG(TRUE, (L"Importance: %d \r\n", rgprops[2].Value.ul));
}
// Free the returned SPropValue structure.
MAPIFreeBuffer(rgprops);
}
return hr;
}
Requirements
Pocket PC: Pocket PC 2002 and later
Smartphone: Smartphone 2002 and later
OS Versions: Windows CE 3.0 and later
Header: mapidefs.h
Library: cemapi.lib
See Also
Send Feedback on this topic to the authors