Required and Optional Interfaces for Message Store Providers

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.