MAPI defines a set of interfaces that relate to message store providers. Because of the wide range of features that a message store can choose to implement, some of these interfaces are required and some are not. The following table lists the MAPI interfaces related to message store providers, whether the interfaces are required or optional, and why they are used.
Interface | Status | Use |
---|---|---|
IMSProvider | Required | Logging on and off a message store. |
IMSLogon | Required | Opening folders or messages, verifying the message store's identity, and handling notifications. |
IMsgStore | Required | Opening folders or messages, finding special folders, handling message submissions. |
IMAPIFolder | Required | Finding and manipulating messages and sub-folders. |
IMessage | Required | Manipulating attachments and setting some of a message's properties. |
IMAPITable | Required | Used by other objects to present collections of data to various MAPI components. |
IMAPIStatus | Required | Allows clients to validate the state of a message store, and perform some configuration tasks. |
IAttach | Optional | Used by message objects if the store provider supports file attachments. |
IStorage | Optional | OLE interface used by attachment objects if the store provider supports OLE object attachments. |
IStream | Optional | OLE interface used by message and attachment objects. |
IStreamDocfile | Optional | OLE interface used by some OLE 2 attachment objects. |
The basic information you need to implement IMAPIFolder, IMessage, IMAPIStatus, and IMAPITable is documented in the reference topics for these interfaces. This section contains supplementary information that is more directly related to message store providers. The rest of the MAPI interfaces should be implemented according to the information in this section and in the appropriate reference topics. See the COM and ActiveX Object Services section in the Platform SDK for details about implementing IStorage, IStream, and IStreamDocFile.