DTBLCOMBOBOX

适用于:Outlook 2013 | Outlook 2016

描述将在从显示表生成的对话框中使用的组合框控件。

属性
标头文件: Mapidefs.h
相关宏: SizedDtblComboBox
typedef struct _DTBLCOMBOBOX
{
  ULONG ulbLpszCharsAllowed;
  ULONG ulFlags;
  ULONG ulNumCharsAllowed;
  ULONG ulPRPropertyName;
  ULONG ulPRTableName;
} DTBLCOMBOBOX, FAR *LPDTBLCOMBOBOX;

Members

ulbLpszCharsAllowed

DTBLCOMBOBOX 结构的开头到描述限制的字符串筛选器(如果有)到可输入组合框编辑控件中的字符的偏移量。 筛选器不解释为正则表达式,并且对输入的每个字符应用相同的筛选器。 筛选器的格式如下所示:

字符 说明
* 允许 (任何字符, "*" 例如,) 。
[ ] 定义一组字符 (, "[0123456789]" 例如,) 。
- 指示 (字符的范围, "[a-z]" 例如) 。
~ 指示不允许这些字符。 (例如,"[~0-9]")。
\ 例如,用于引用上述任何符号 (表示 "[\-\\\[\]]") 允许-, , [和 ] 字符。

ulFlags

用于指定字符串筛选器格式的标志的位掩码。 可以设置以下标志:

MAPI_UNICODE

筛选器采用 Unicode 格式。 如果未设置MAPI_UNICODE标志,则筛选器采用 ANSI 格式。

ulNumCharsAllowed

可在组合框的文本框中输入的最大字符数。

ulPRPropertyName

PT_TSTRING 类型的属性的属性标记。

ulPRTableName

可以使用 OpenProperty 调用打开 IMAPITable 接口的 PT_OBJECT 类型的属性的属性标记。 表必须具有一个列,其属性的类型与 ulPRPropertyName 成员标识的属性的类型相同。 表的行用于填充列表。

备注

DTBLCOMBOBOX 结构描述由列表和选择字段组成的控件的组合框。 列表显示用户可以从中选择的信息,并且选择字段显示当前所选内容。 选择字段是一个编辑控件,也可用于输入列表中尚不存在的文本。

这两个属性标记成员协同工作,以协调列表显示与编辑控件。 当 MAPI 首次显示组合框时,它会调用与显示表关联的 IMAPIProp 实现的 OpenProperty 方法,以检索由 ulPRTableName 成员表示的表。 此表包含一列,列包含 ulPRPropertyName 成员表示的属性的值。 因此,此列必须与 ulPRPropertyName 属性的类型相同,并且两列必须是字符串。

列的值显示在组合框的列表部分中。 因此, PR_NULL (PidTagNull) 不是 ulPRPropertyName 的有效属性标记。 当用户选择行之一或在文本框中输入新数据时, ulPRPropertyName 属性将设置为所选或输入的值。

为了显示编辑控件的初始值,MAPI 调用 IMAPIProp::GetProps 来检索显示表的属性值。 如果检索到的属性之一与 ulPRPropertyName 成员表示的属性匹配,则其值将成为初始值。

有关显示表的概述,请参阅 显示表。 有关如何实现显示表的信息,请参阅 实现显示表

另请参阅

DTCTL
PidTagControlType 规范属性MAPI 结构