Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

IMessage (Compact 7)

3/12/2014

Learn about the IMessage interface in Windows Embedded Compact 7, which manages messages, attachments, and recipients.

IMessage methods Description

IMessage::GetAttachmentTable

Returns the message's attachment IMAPITable object.

IMessage::OpenAttach

Opens an IAttach object.

IMessage::CreateAttach

Creates a new IAttach object.

IMessage::DeleteAttach

Deletes an IAttach object.

IMessage::GetRecipientTable

Returns the message's recipient IMAPITable object.

IMessage::ModifyRecipients

Adds, deletes, and modifies a message's list of recipients. This is contained in an ADRLIST structure.

IMessage::SubmitMessage

Saves all changes to the message, and marks it as ready for sending.

IMessage::SetReadFlag

Not supported, do not use.

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-onfy

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 read-only to clients, except for 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

IMessage is implemented by Message Store Providers, is called by Message Client applications, and is exposed by IMessage objects.

The IMessage interface identifier is IID_Message, and its pointer type is LPMESSAGE.

The following code example shows how to use IMAPIProp::GetProps, which IMessage inherits from IMAPIProp.

Gg154950.note(en-us,WinEmbedded.70).gifNote:
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 is 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.
    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;
}

Header

mapidefs.h

Library

cemapi.lib

Show:
© 2015 Microsoft