Platform SDK: MAPI

DTBLDDLBX

The DTBLDDLBX structure describes a drop-down list box control to be used in a dialog box built from a display table.

Quick Info

Header file: MAPIDEFS.H

typedef struct _DTBLDDLBX 
{ 
     ULONG ulFlags; 
     ULONG ulPRDisplayProperty; 
     ULONG ulPRSetProperty; 
     ULONG ulPRTableName; 
} DTBLDDLBX, FAR *LPDTBLDDLBX; 
 

Members

ulFlags
Reserved, must be zero.
ulPRDisplayProperty
Property tag for a property of type PT_TSTRING. This property is one of the columns in the table identified by the ulPRTableTable member. The values for this property are displayed in the list box.
ulPRSetProperty
Property tag for a property of any type. This property is one of the columns in the table identified by the ulPRTableTable member. When the user of the list box selects a property value for the ulPRDisplayProperty member from the rows of the table identified by the ulPRTableName member, the corresponding ulPRSetProperty member is set.
ulPRTableName
Property tag for a table property of type PT_OBJECT that can be opened using an OpenProperty call. The table should have two columns: ulPRDisplayProperty and ulPrSetProperty. The rows of the table should correspond to items in the list box.

Remarks

A DTBLDDLBX structure describes a drop-down list box — a list box control that is displayed as a single item until the user elects to expand it. The following illustration provides an example of a drop-down list box.

The three properties identified by the property tags work together to display the information in the list box and set a related property. The ulPRTableName member is a table object that is accessed through a call to IMAPIProp::OpenProperty. The table has two columns: one column for the property identified by the ulPRDisplayProperty member and the other for the property identified by the ulPRSetProperty member.

The ulPRDisplayProperty property drives the list box display. When a user selects one of the values from the display, MAPI calls IMAPIProp::SetProps to set the corresponding property as identified by the ulPRSetProperty member, meaning the property in the same row as the selected display property. The ulPRSetProperty member cannot be set to PR_NULL.

An initial value is displayed in the list box if MAPI has retrieved the property represented by the ulPRSetProperty member through a call to IMAPIProp::GetProps and located a row in the table with the value for the ulPRSetProperty member. The initial displayed value is the contents of the ulPRDisplayProperty column from that row that matches the property in the ulPRDisplayProperty member of the structure. The value returned by GetProps for the property identified by the ulPRDisplayProperty member becomes the initial value that is shown when the list box is first displayed.

For an overview of display tables, see Display Tables. For information about implementing a display table, see Implementing a Display Table.

See Also

Display Table Structures, DTCTL