Platform SDK: Exchange Server

Client-Only Message Properties

Calling IMAPIProp::GetProps to retrieve the following message properties does not access the server nor does it create an RPC. This is because they are either stored on the client computer or derived from other properties stored on the client computer. For more information on reducing RPCs, see Application Performance.

These properties are defined by MAPI and have special characteristics. For example, a call to IMAPIProp::GetProps to retrieve PR_OBJECT_TYPE does not produce an RPC. This is not because the property is actually stored on the client, but because message objects are by definition of the message object type. Therefore, querying for this information is a superfluous action.

Properties that are stored on the client behave in distinct ways. For example, because sorting is performed on the server, you cannot sort using these properties. They exhibit the following restrictions:

For example, you may set a rule that fires on the condition that the properties PR_CONVERSATION_INDEX and PR_MAPPING_SIGNATURE are present on an incoming message. But rule conditions are described in terms of restrictions — MAPI SRestrictions — and because PR_MAPPING_SIGNATURE is a client-only message property, you cannot use it in a restriction. Therefore, this restriction will not be met and the rule will never fire.

Note  Information store providers other than the Microsoft Exchange Server information store provider (such as the one that controls personal information stores) might treat these and other properties differently. For example, they may not be restricted in the ways listed above.

Client-Only Message Properties

Property Designation Description
PR_ENTRYID Contains a MAPI entry identifier used to open and edit properties of a particular MAPI object.
PR_MAPPING_SIGNATURE Contains the mapping signature for named properties of a particular MAPI object.
PR_MDB_PROVIDER Contains a provider-defined identifier that indicates the type of the information store.
PR_INSTANCE_KEY Contains a value that uniquely identifies a row in a table.
PR_OBJECT_TYPE Contains the type of an object.
PR_PARENT_ENTRYID Contains the entry identifier of the folder containing a folder or message.
PR_RECORD_KEY Contains a unique binary-comparable identifier for a specific object.
PR_REPLICA_SERVER Contains the server name from which the message is replicated.
PR_STORE_ENTRYID Contains the unique entry identifier of the information store in which an object resides.
PR_STORE_RECORD_KEY Contains the unique binary-comparable identifier (record key) of the information store in which an object resides.
PR_STORE_SUPPORT_MASK Contains a bitmask of flags that client applications should query to determine the characteristics of an information store.

Note  Properties other than those in the preceding table generate an RPC to the server for each call of IMAPIProp::GetProps. Therefore, for good performance, you should combine all GetProps calls for properties other than these into a single call. Also, you should call GetProps before resorting to streaming a property such as PR_COMPRESSED_RTF.