Display Table Implementation

Applies to: Office 2010 | Outlook 2010 | Visual Studio

A display table is used to show a property sheet, a special dialog box that is composed of one or more tabbed property pages dedicated to displaying and possibly editing one or more properties. Associated with every display table is an IAttach : IMAPIProp interface implementation. The IMAPIProp implementation maintains the property data that is presented in the property sheet.

The rows in a display table represent the controls in the property sheet. Most controls can be associated with properties maintained with the IMAPIProp implementation. When a user changes the value of a modifiable control, the corresponding property is updated.

The columns in a display table represent properties of the control, such as its position in the property sheet, its type, associated structure, and identifier. For a complete list of required display table columns, see Display Tables.

MAPI displays a property sheet to the user of a client application by reading property values from the IMAPIProp implementation associated with the display table or from the display table directly. As the user works with the property sheet, changing values in the controls, MAPI calls IMAPIProp::SetProps to save a changed control if the control's DT_SET_IMMEDIATE flag is set. For controls without the DT_SET_IMMEDIATE flag set, changes to properties are saved when the user dismisses the dialog box by clicking the OK or Apply Now button. When either of these buttons or the Cancel button is clicked, MAPI removes the property sheet from view.

MAPI gains access to your display table either by calling the IMAPIProp::OpenProperty method in the IMAPIProp implementation and requesting the PR_DETAILS_TABLE (PidTagDetailsTable) property or by inheriting it in a call that you have made to MAPI, such as IMAPISupport::DoConfigPropsheet.

The first access technique is used when address book providers are asked to show details about messaging users or distribution lists. The following processing occurs:

  1. A client calls the IAddrBook::Details method.

  2. MAPI calls the address book provider's IABLogon::OpenEntry method to access the messaging user that represents the selected entry.

  3. MAPI calls the messaging user's IMAPIProp::OpenProperty method to retrieve the PR_DETAILS_TABLE property, the display table for the details dialog box.

  4. MAPI displays the dialog box, handling the user's interaction with the information, and removes it when the user has finished.

See Also

Concepts

MAPI Service Providers