A property sheet is a dialog box for displaying the properties of an object. The properties can be read-only, enabling the user only to view them, or read/write, enabling the user to make changes. A property sheet contains one or more overlapping child windows called pages, each page contains control windows for setting a group of related properties. Users navigate from page to page by selecting a tab that brings the corresponding page to the foreground of the property sheet.
Service providers are required to implement a property sheet that displays a minimal set of properties related to configuration in the message service. If you allow these message service properties to be changed, you can either allow users of client applications such as the Control Panel applet to make the changes or implement the changes programmatically. Implementing property sheets to display and edit other types of properties is optional.
Typically, you will need to display a property sheet:
Transport providers also implement property sheets to display properties related to message options, and address book providers implement property sheets to view and edit detailed information about messaging users and distribution lists, advanced search criteria, and templates for entering new users.
There are three techniques for creating a property sheet:
MAPI recommends that providers choose the third option; create a property sheet using a display table. This is the simplest option because it eliminates the need to work with the Windows user interface.
For an overview of display tables, see Display Tables.
For detailed information about display tables, see Implementing a Display Table.
For information about implementing a control, see Implementing a Control Object.
To retrieve the index of a control selected by a user in a display table list box, wait until the user clicks OK or Apply Now. At this point, the entry identifier of the selected item is written back to the IMAPIProp interface as the value of the property specified by the ulPRSetProperty member in the DTBLLBX structure.
If you need to be able to add or remove items from your list box, using a display table and IMAPISupport::DoConfigPropsheet will not work. Instead, consider implementing a property sheet with the Win32 property sheet API contained in COMDLG32.DLL.