Outlook PIA 中的对象

在对象浏览器中浏览 Outlook 主互操作程序集 (PIA) 时,您可能会注意到许多接口和类的名称都引用了 Outlook 对象模型中的熟悉对象。 对象模型中的一些对象与 PIA 中的接口具有一对一的映射。

例如, AddressEntry 映射到 PIA 中的 AddressEntry 接口, AddressList 对象映射到 AddressList 接口。

但是,其他多数对象都在 PIA 中具有一对多的映射。 此一对多映射适用于在 Microsoft Office Outlook 2007 之前存在的一些对象以及自 Outlook 2007 以来添加的所有对象。 本主题列出了映射到 COM 对象的典型 .NET 接口、类和委托,还介绍了如何访问 Outlook PIA 中的对象。 它还介绍了 Outlook PIA 中的一些例外,即在基于 COM 的对象模型中对象遭隐藏或弃用的情况。

帮助程序对象

本节使用 FormRegion 对象作为示例演示了在 Outlook PIA 中用于对象的典型帮助程序类。 在 Outlook 2007 中将 FormRegion 对象添加到对象模型中。 与 PIA 中的 FormRegion 对象相关的是接口、类和委托,如图 1 所示。

图 1. 在 Outlook 对象模型和 Outlook PIA 中表示的 FormRegion 对象

Outlook 对象模型和 Outlook PIA 中表示的 FormRegion 对象

您在访问 FormRegion 对象及其方法、属性和事件成员时最常用的一个接口是 FormRegion 接口。 但是,不应将 FormRegion .NET 接口视为 FormRegion COM 对象的确切镜像图像;如果在 Visual Studio 中查看对象浏览器,你会发现 FormRegion 接口继承自另一个接口(_FormRegion 接口)。 实际上, FormRegion 接口只是基于 COM 类型库创建 Outlook PIA 所产生的少数几个接口和类中的一个。

为了创建 Outlook PIA,Outlook 将使用 .NET Framework 中的类型库导入程序 (TLBIMP) 将 COM 类型库中的类型定义转换为公共语言运行库程序集中的等效定义。 在 COM 中, FormRegion 对象实际上是一个由以下两个接口组成的 coclass,这两个接口定义 FormRegion 对象实现的接口:

TLBIMP 直接从类型库中导入 _FormRegionFormRegionEvents

除了导入主接口和事件接口外,TLBIMP 还会创建一个与 COM 对象同名的 .NET 接口,以及一个使用该对象的名称并在其后面追加"Class"的 .NET 类。 对于 FormRegion 对象,TLBIMP 会创建以下内容:

对于本主题所提及的 .NET 接口和 .NET 类,您应始终使用 TLBIMP 创建的 .NET 接口来访问对象。 例如,为了在 VB 中访问 FormRegion 对象,需始终使用 FormRegion 接口,如以下代码示例所示:

Imports Outlook = Microsoft.Office.Interop.Outlook
Sub DemoFormRegion(ByVal Region As Outlook.FormRegion)
    Dim MyFormRegion As Outlook.FormRegion = Region
    ' Additional method code here
End Sub
using Outlook = Microsoft.Office.Interop.Outlook; 
void DemoFormRegion(Outlook.FormRegion region) 
{
    Outlook.FormRegion myFormRegion = region; 
    // Additional method code here
}

若要了解 TLBIMP 分别导入和创建的主接口和 .NET 类的用途,请参阅 Outlook PIA 中的方法和属性。 若要了解与事件相关的接口、委托和接收器帮助程序类的用途,请参阅 Outlook PIA 中的事件

弃用的对象

类型库中弃用的对象会在 Outlook PIA 中公开。 例如, _DDocSiteControl_DRecipientControl 对象在类型库中隐藏,但在 PIA 中公开。

另一个弃用的对象示例是 MAPIFolder 对象。 从 Outlook 2007 开始, Folder 对象替换了对象模型中的 MAPIFolder 对象。 现有解决方案应通过 Folder 替换对 MAPIFolder 的引用,Outlook 2007 和更高版本新增的所有解决方案都应只使用 Folder 对象。 对于非托管解决方案,Visual Basic 编辑器的对象浏览器不再列出 MAPIFolder 对象,甚至不列为隐藏对象。

对于托管解决方案,即使 Outlook PIA 公开可用于访问 Folder 对象及其成员的 Folder 接口,Outlook PIA 也会将 MAPIFolder 公开为用于定义 Folder 对象成员的接口。

另请参阅