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.