Platform SDK: Exchange Server

Microsoft Exchange Server Message Properties

In addition to the standard message properties defined by MAPI, a number of message properties specific to Microsoft Exchange Server are declared by Microsoft Exchange Server in the EDKMDB.H file.

The following tables list these properties by usage type. Some properties in this section appear in more than one table. None of the message properties in the following tables are required to be present on a message.

The properties in the first table are for general use. For example, the PR_CREATOR_NAME property can be used to identify the creator of the message; particularly for messages in public folders. This is useful because the creator of a message is granted more permissions on that message than other users. The PR_REPLICA_SERVER property is used to determine the server on which the copy resides.

General Message Properties

Property Designation Description
PR_CHANGE_KEY Read-only. Returns a binary value indicating the last change that took place on the message or folder.
PR_CREATOR_NAME Read-only. Specifies the display name of the user who created the message.
PR_LAST_MODIFIER_ENTRYID Read-only. Specifies the entry identifier of the last person to modify the message.
PR_LAST_MODIFIER_NAME Read-only. Contains the display name of the last person to modify the message.
PR_PARENT_SOURCE_KEY Read-only. Used in incremental change synchronization. Available on folders and messages.
PR_PREDECESSOR_CHANGE_LIST Read/write. Contains a list of change keys, including the current PR_CHANGE_KEY.
PR_REPLICA_SERVER Read-only. Specifies the name of the server on which the copy of the message resides.
PR_SOURCE_KEY Read/write. Identifies the folder or message.

To reduce the number of RPCs, certain functions that you call to manipulate message properties are automatically deferred by the Microsoft Exchange Server information store provider. Two examples are the IMAPIProp::SetProps and IMAPIProp::DeleteProps methods. This means that, for example, deleting a nonexistent property can return a SUCCESS_SUCCESS result where the MAPI_E_ERRORS_RETURNED result might be expected. Typically, the deferral of error reports and function calls is governed by the use of the MAPI_DEFERRED_ERRORS flag. For more information, see Using the MAPI_DEFERRED_ERRORS Flag.

In the Microsoft Exchange Client, the Send property page (which appears when you select Options from the Tools menu) is controlled by the server-based information store provider of Microsoft Exchange Server. A third-party application can also use these properties if it uses the Microsoft Exchange Server information store service provider.

The properties in the following table are set by the sender using the Send property page of the Microsoft Exchange Client. For example, PR_DEFERRED_SEND_TIME determines when a message is actually to be sent. PR_DEFERRED_SEND_TIME is used by the information store to defer messages at sending time and PR_DEFERRED_DELIVERY_TIME is used to defer messages at delivery time. These are all read/write properties.

Send Options Message Properties

Property Designation Description
PR_DEFERRED_SEND_NUMBER Indicates how many units of time to wait before sending a message.
PR_DEFERRED_SEND_TIME Indicates a time at which a message should be sent.
PR_DEFERRED_SEND_UNITS Specifies the unit of time to be used with the PR_DEFERRED_SEND_NUMBER property to determine the PR_DEFERRED_SEND_TIME for a deferred message.
PR_EXPIRY_NUMBER Contains the number of time units that must pass before the message disappears if unread.
PR_EXPIRY_UNITS Contains the time unit to be used in calculating the time for a message to expire.