为 Microsoft Outlook 创建自定义属性页包括以下四个主要步骤:
Outlook 中的自定义属性页是一个 ActiveX 控件。它与一个设计为 COM 加载项的动态链接库 (DLL) 一起实现。创建自定义属性页的最简单的方法是使用 Microsoft Visual Basic 6.0 或更高版本。该版本的 Visual Basic 提供了模板和工具,简化了创建 ActiveX 控件和 COM 加载项的过程。
创建 ActiveX 控件时,可在该控件中放置用户需要的控件,用户用这些控件来设置该页支持的属性。由于 Outlook 在对话框中显示属性页时可能会调整控件的大小,所以控件的 Initialize 事件应该根据控件的 Width 和 Height 属性的最终值动态地定位和调整子控件。
自定义属性页所在的对话框在属性页下面显示三个按钮:“确定”按钮、“取消”按钮和“应用”按钮。当用户单击“确定”按钮时,将应用对话框中所有页的属性的更改并关闭对话框。如果用户单击“取消”按钮,将不更改属性,并且关闭对话框。如果用户单击“应用”按钮,将应用对属性所做的任何更改,但对话框依然处于打开状态。您应该设计属性页在用户单击这些按钮时作出相应的响应。本主题的稍后部分将说明如何通知 Outlook 您的属性页的状态已更改,以及应当应用更改的属性值时 Outlook 如何通知程序。
实现 PropertyPage 对象
PropertyPage 对象是一个抽象对象,也就是说,它的接口由 Outlook 定义但不由 Outlook 实现。如果自定义属性的更改依赖于父对话框中的“应用”或“帮助”按钮,包含自定义属性页 ActiveX 控件的模块就必须实现 PropertyPage 对象。若要实现该对象,模块必须具有到 Microsoft Outlook 9 对象库的引用集,并且必须包含以下语句。
Implements Outlook.PropertyPage
然后,模块必须包含实现 PropertyPage 对象的方法和属性的代码。下表说明这些过程。
过程 | 说明 |
---|---|
Dirty 属性 | 由 Outlook 在响应 OnStatusChange 方法时调用,用来确定用户是否更改了属性页上的值。 |
Apply 方法 | 由 Outlook 调用,用于通知程序用户已单击了“确定”或“应用”按钮。通常,该过程应用用户在属性页所做的任何属性值更改。 |
GetPageInfo 方法 | 由 Outlook 调用,用于获得与属性页相关的帮助文件和帮助主题。 |
大多数情况下,对属性值所做的更改不会立刻应用来响应用户与控件的交互,用户用控件来指定这些属性值。事实上,只有当用户单击对话框中的“确定”或“应用”按钮时,才应用属性值。“应用”按钮为灰色,直到用户更改了属性页中的值。若要通知 Outlook 用户已经更改了属性页中的值,程序应调用 OnStatusChange 方法,然后在 Outlook 查询 Dirty 属性时返回 True。
OptionsPagesAdd 事件允许程序将自定义属性页添加到 Microsoft Outlook“选项”对话框中(如果为 Application 对象触发该事件)或文件夹“属性”对话框中(如果为 NameSpace 对象调用该事件)。当 Outlook 调用该事件过程时,将传递 PropertyPages 对象。事件过程使用集合的 Add 方法将由程序实现的 PropertyPage 对象添加到对象中。