MAPI Form Interfaces

MAPI defines the following interfaces relating to forms:

Interface name Description
IMAPIForm Manipulates form objects and handles form object commands.
IMAPIFormAdviseSink Determines if the form object can handle the next message and changes the next or previous state of the form object.
IMAPIFormContainer Supports installation, deinstallation, and resolution of form servers against a specific form container.
IMAPIFormFactory Supports the use of configurable run-time form servers.
IMAPIFormInfo Enables client applications to work with properties that are specific to a message class.
IMAPIFormMgr Enables client applications to get information about form servers, activates form servers, and installs form servers in the messaging system.
IMAPIMessageSite Used to manipulate messages associated with form objects.
IMAPIViewAdviseSink Notifies client applications that an event has occurred in the form object.
IMAPIViewContext Used to respond to Next, Previous, and Delete commands in the form object.
IPersistMessage Used to save, initialize, and load form objects to and from message storage.

For more information on the methods of the MAPI form interfaces, see the documentation for these interfaces. You do not have to implement all of the MAPI form interfaces in order to create a custom form. A form itself requires only that you implement the IPersistMessage, IMAPIForm, and IMAPIFormAdviseSink interfaces. Additionally, it is also a good idea to implement IMAPIFormFactory and IMAPIFormInfo. IMAPIFormFactory is useful for OLE compliance, and IMAPIFormInfo allows well-written client applications to make better use of your forms.

Note Strictly speaking, IMAPIFormAdviseSink is an optional interface. However, it is strongly recommended that you implement it in your form servers. This interface is critical to efficient interaction between messaging clients and form servers, especially when several messages of your form server's message class are being dealt with.