Platform SDK: MAPI

IMessage : IMAPIProp

The IMessage interface is used for managing messages, attachments, and recipients.

Quick Info

Header file: MAPIDEFS.H
Exposed by: Message object
Implemented by: Message store providers
Called by: Client applications
Interface identifier: IID_IMessage
Pointer type: LPMESSAGE
Transaction model: Transacted

Vtable Order

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 Sets or clears the MSGFLAG_READ flag in the PR_MESSAGE_FLAGS property of the message and manages the sending of read reports.

The following properties are required on messages at some point during their lifecycle. Most of the read-only properties are set by the message store provider when a client calls a message's IMAPIProp::SaveChanges method. Other read-only properties are set by the transport provider.

Required properties for messages of all classes Access
PR_CREATION_TIME Read-only
PR_DISPLAY_BCC Read-only
PR_DISPLAY_CC Read-only
PR_DISPLAY_TO Read-only
PR_ENTRYID Read-only
PR_LAST_MODIFICATION_TIME Read-only
PR_MESSAGE_ATTACHMENTS Read-only
PR_MESSAGE_CLASS Read/write
PR_MESSAGE_FLAGS Read/write
PR_MESSAGE_RECIPIENTS Read-only
PR_MESSAGE_SIZE Read-only
PR_MESSAGE_CC_ME Read-only
PR_MESSAGE_RECIP_ME Read-only
PR_MESSAGE_TO_ME Read-only
PR_NORMALIZED_SUBJECT Read-only
PR_ORIGINATOR properties Read-only
PR_PARENT_DISPLAY Read-only
PR_PARENT_ENTRYID Read-only
PR_RECEIVED_BY properties Read-only
PR_RECIPIENT_TYPE Read-only
PR_RECORD_KEY Read-only
PR_SEARCH_KEY Read-only
PR_SENDER properties Read-only
PR_STORE_ENTRYID Read-only
PR_STORE_RECORD_KEY Read-only

The following properties 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
PR_BODY
PR_CONVERSATION_INDEX
PR_CONVERSATION_TOPIC
PR_MESSAGE_CLASS
PR_MESSAGE_DELIVERY_TIME
PR_ORIGINAL_DELIVERY_TIME
PR_ORIGINAL_DISPLAY_BCC
PR_ORIGINAL_DISPLAY_CC
PR_ORIGINAL_DISPLAY_TO
PR_ORIGINAL_SUBJECT
PR_ORIGINAL_SUBMIT_TIME
PR_REPORT_TAG
PR_REPORT_TEXT
PR_REPORT_TIME
PR_SEARCH_KEY
PR_SENDER properties
PR_SUBJECT

Properties for message recipients Access Required or optional
PR_ADDRTYPE Read-only Required
PR_DISPLAY_NAME Read/write Required
PR_DISPLAY_TYPE Read/write Required
PR_EMAIL_ADDRESS Read-only Optional
PR_ENTRYID Read-only Required
PR_OBJECT_TYPE Read-only Required
PR_SEARCH_KEY Read-only Optional