Message store providers are more complex than other MAPI service providers in that message store providers have a wider range of optional features they can implement. The list of required features for a message store provider is fairly short. However, a typical message store provider will support a number of optional features, since many of the optional features are very useful or required by most MAPI clients. The following table lists the major features that message store providers can implement and whether each feature is required or optional for all message store providers and for default message store providers.
Feature | All | Default |
---|---|---|
Providing status with the MAPI status table | Required | Required |
Implementing folder objects | Required | Required |
Implementing message objects | Required | Required |
Read and nonread reports | Required | Required |
Progress interface | Required | Required |
Configuration interface | Required | Required |
Supporting associated contents tables for form and view support | Optional | Optional |
Sending messages with the message store provider | Optional | Required |
Receiving messages with the message store provider | Optional | Required |
Supporting message attachments | Optional | Optional |
Supporting Rich Text Format for messages | Optional | Optional |
Providing notifications | Optional | Optional |
Supporting searches | Optional | Optional |
Tightly coupled message store/transport providers | Optional | Optional |
Non-reuse of entry identifiers | Optional | Optional |
Many of the optional features can be advertised to MAPI and client applications by setting various flags in the message store object's PR_STORE_SUPPORT_MASK property. The required features do not have flags associated with them. PR_STORE_SUPPORT_MASK is required on message store, folder, and message objects.