Platform SDK: MAPI |
The DTBLCOMBOBOX structure describes a combo box control to be used in a dialog box built from a display table.
Header file: | MAPIDEFS.H |
Related macro: | SizedDtblComboBox |
typedef struct _DTBLCOMBOBOX { ULONG ulbLpszCharsAllowed; ULONG ulFlags; ULONG ulNumCharsAllowed; ULONG ulPRPropertyName; ULONG ulPRTableName; } DTBLCOMBOBOX, FAR *LPDTBLCOMBOBOX;
The filter is not interpreted as a regular expression and the same filter is applied to every character entered.The format of the filter is as follows:
* Any character is allowed (for example, "*").
[ ] Defines a set of characters (for example, "[0123456789]").
- Indicates a range of characters (for example, "[a-z]").
~ Indicates that these characters are not allowed. (for example, "[~0-9]").
\ Used to quote any of the above symbols (for example, "[\-\\\[\]]" means -, \, [, and ] characters are allowed).
ulFlags
Bitmask of flags used to designate the format of the character string filter. The following flag can be set:
A DTBLCOMBOBOX structure describes a combo box — a control that consists of a list box and a selection field. The list box presents the information from which a user can select, and the selection field displays the current selection. The selection field is an edit control that can also be used to enter text not already in the list.
The following dialog box includes an example of a combo box.
The two property tag members work together to coordinate the list box display with the edit control. When MAPI first displays the combo box, it calls the OpenProperty method of the IMAPIProp implementation that is associated with the display table to retrieve the table represented by the ulPRTableName member. This table has one column — a column that contains values for the property represented by the ulPRPropertyName member. Therefore, this column must be of the same type as the ulPRPropertyName property and both columns must be character strings.
The values for the column are displayed in the list box portion of the combo box. Therefore, PR_NULL is not a valid property tag for ulPRPropertyName. When a user either selects one of the rows or enters new data into the edit box, the ulPRPropertyName property is set to the selected or entered value.
To display an initial value for the edit control, MAPI calls IMAPIProp::GetProps to retrieve the property values for the display table. If one of the retrieved properties matches the property represented by the ulPRPropertyName member, its value becomes the initial value.
For an overview of display tables, see Display Tables. For information about implementing a display table, see Implementing a Display Table.