Form objects are created dynamically by form servers in order to display specific messages and allow users to interact with them. A form object is, therefore, usually an instantiation of the IMAPIForm-derived class implemented by the form server. When a client application opens a message, the form server for that message class creates a form object to handle the message. The form object then creates its interface and displays the properties of the message in it. The form object and its interface persists until the user closes it. The form object handles any changes to the values of the message's properties.
Additionally, the MAPI form interfaces define a mechanism by which one form object can load and display a series of messages. This is an efficiency mechanism, as it avoids needless destruction and creation of message objects and their interfaces. When requested by the messaging client to load a different message, the form object should save any changes to the current message's properties.
For information on a client application's perspective of form objects, see About Custom Form Objects.