适用于:Outlook 2013 | Outlook 2016
属性表是用于显示对象属性的对话框。 属性可以是只读的,使用户只能查看它们,也可以是读/写,使用户能够进行更改。 属性表包含一个或多个称为页面的重叠子窗口。 每个页面都包含用于设置一组相关属性的控件窗口。 用户通过选择一个选项卡(将相应页面引入属性表的前景)从一页导航到一页。
服务提供程序必须实现一个属性表,该表显示与消息服务中的配置相关的最小属性集。 如果允许更改这些消息服务属性,则可以允许客户端应用程序(如 控制面板)的用户进行更改或以编程方式实现更改。 实现属性表以显示和编辑其他类型的属性是可选的。
通常,在以下情况下需要显示属性表:
当客户端调用状态对象的 IMAPIStatus::SettingsDialog 方法时。
当 MAPI 调用提供程序对象的登录方法时。
当 MAPI 为提供程序的消息服务调用入口点函数时。
传输提供程序还实现属性表以显示与邮件选项相关的属性,通讯簿提供程序实现属性表以查看和编辑有关消息用户和通讯组列表、高级搜索条件的详细信息,以及用于输入新用户的模板。
可以使用以下三种方法之一来创建属性表:
手动操作,就像任何对话框一样。
通过使用 Windows SDK 中提供的属性表通用控件。
通过使用 MAPI 显示表。
提供程序应选择最后一个选项, (使用显示表) 创建属性表。 这是最简单的选项,因为它无需使用 Windows 用户界面。
若要实现从消息服务属性的显示表生成的属性表,请使用以下过程:
调用 IMAPISupport::OpenProfileSection 以打开当前配置文件中的节。 传递 MAPIUID 或 NULL 以打开提供程序的配置文件部分。
调用 CreateIProp 以创建属性数据对象。
调用配置文件节的 IMAPIProp::CopyTo 方法,将分区的所有属性复制到属性数据对象。
通过生成一个或多个描述要显示在属性表上的控件的 DTPAGE 结构并调用 BuildDisplayTable 函数,或通过实现自定义代码来创建显示表。
调用 IMAPISupport::D oConfigPropsheet 以显示具有复制属性的属性表。 将指向属性数据对象的指针作为 lpConfigData 参数传递,并将指向显示表的指针作为 lpDisplayTable 参数传递。 如果要重写此属性表的默认访问模式,请不要为显示表中表示只读属性的每个控件设置DT_EDITABLE标志。
在属性表中进行了所有更改后,调用属性数据对象的 IMAPIProp::CopyTo 方法,将更改的属性复制回配置文件部分。
有关显示表的概述,请参阅 显示表。
有关显示表的详细信息,请参阅 显示表实现。
有关实现控件的信息,请参阅 控件对象实现。
若要检索用户在显示表列表框中选择的控件的索引,请等待,直到用户单击 “确定” 或“ 应用”。 此时,所选项的入口标识符将写回到 IMAPIProp : IUnknown 接口,作为由 DTBLLBX 结构中的 ulPRSetProperty 成员指定的属性值。
如果需要能够在列表框中添加或删除项,则使用显示表和 IMAPISupport::D oConfigPropsheet 方法将不起作用。 相反,请考虑使用包含在 comdlg32.dll 文件中的 Win32 属性表 API 实现属性表。