添加自定义属性页

   

为 Microsoft Outlook 创建自定义属性页包括以下四个主要步骤:

  1. 创建作为 ActiveX 控件的页。
  2. 实现 PropertyPage 对象。
  3. 编写设置 Dirty 属性的值并调用 OnStatusChange 方法的过程。
  4. 创建包含 OptionsPagesAdd 事件过程的组件对象模型 (COM) 加载项

创建作为 ActiveX 控件的页

Outlook 中的自定义属性页是一个 ActiveX 控件。它与一个设计为 COM 加载项的动态链接库 (DLL) 一起实现。创建自定义属性页的最简单的方法是使用 Microsoft Visual Basic 6.0 或更高版本。该版本的 Visual Basic 提供了模板和工具,简化了创建 ActiveX 控件和 COM 加载项的过程。

创建 ActiveX 控件时,可在该控件中放置用户需要的控件,用户用这些控件来设置该页支持的属性。由于 Outlook 在对话框中显示属性页时可能会调整控件的大小,所以控件的 Initialize 事件应该根据控件的 WidthHeight 属性的最终值动态地定位和调整子控件。

自定义属性页所在的对话框在属性页下面显示三个按钮:“确定”按钮、“取消”按钮和“应用”按钮。当用户单击“确定”按钮时,将应用对话框中所有页的属性的更改并关闭对话框。如果用户单击“取消”按钮,将不更改属性,并且关闭对话框。如果用户单击“应用”按钮,将应用对属性所做的任何更改,但对话框依然处于打开状态。您应该设计属性页在用户单击这些按钮时作出相应的响应。本主题的稍后部分将说明如何通知 Outlook 您的属性页的状态已更改,以及应当应用更改的属性值时 Outlook 如何通知程序。

实现 PropertyPage 对象

PropertyPage 对象是一个抽象对象,也就是说,它的接口由 Outlook 定义但不由 Outlook 实现。如果自定义属性的更改依赖于父对话框中的“应用”或“帮助”按钮,包含自定义属性页 ActiveX 控件的模块就必须实现 PropertyPage 对象。若要实现该对象,模块必须具有到 Microsoft Outlook 9 对象库的引用集,并且必须包含以下语句。

Implements Outlook.PropertyPage

然后,模块必须包含实现 PropertyPage 对象的方法和属性的代码。下表说明这些过程。

过程 说明
Dirty 属性 由 Outlook 在响应 OnStatusChange 方法时调用,用来确定用户是否更改了属性页上的值。
Apply 方法 由 Outlook 调用,用于通知程序用户已单击了“确定”或“应用”按钮。通常,该过程应用用户在属性页所做的任何属性值更改。
GetPageInfo 方法 由 Outlook 调用,用于获得与属性页相关的帮助文件和帮助主题。

编写设置 Dirty 属性并调用 OnStatusChange 方法的过程

大多数情况下,对属性值所做的更改不会立刻应用来响应用户与控件的交互,用户用控件来指定这些属性值。事实上,只有当用户单击对话框中的“确定”或“应用”按钮时,才应用属性值。“应用”按钮为灰色,直到用户更改了属性页中的值。若要通知 Outlook 用户已经更改了属性页中的值,程序应调用 OnStatusChange 方法,然后在 Outlook 查询 Dirty 属性时返回 True

创建包含 OptionsPagesAdd 事件过程的 COM 加载项

OptionsPagesAdd 事件允许程序将自定义属性页添加到 Microsoft Outlook“选项”对话框中(如果为 Application 对象触发该事件)或文件夹“属性”对话框中(如果为 NameSpace 对象调用该事件)。当 Outlook 调用该事件过程时,将传递 PropertyPages 对象。事件过程使用集合的 Add 方法将由程序实现的 PropertyPage 对象添加到对象中。