Outlook PIA でのオブジェクト
オブジェクト ブラウザーで Outlook プライマリ相互運用機能アセンブリ (PIA) をブラウズすると、多くのインターフェイスやクラスの名前が、Outlook オブジェクト モデルでお馴染みのオブジェクトを指していることに気付きます。 このオブジェクト モデルの一部のオブジェクトには、PIA のインターフェイスに対する一対一のマッピングがあります。
たとえば、 AddressEntry は AddressEntry インターフェイスにマップされ、 AddressList オブジェクトは PIA の AddressList インターフェイスにマップされます。
しかし、その他の多くのオブジェクトには、PIA の一対多マッピングがあります。 この一対多マッピングは、Microsoft Office Outlook 2007 より以前から存在する一部のオブジェクトと、Outlook 2007 以降に追加されたすべてのオブジェクトに適用されます。 このトピックでは、COM オブジェクトにマップされる典型的な .NET インターフェイス、クラス、およびデリゲートを示し、Outlook PIA のオブジェクトにアクセスする方法を説明します。 また、COM ベースのオブジェクト モデルではオブジェクトが非公開または非推奨になっている Outlook PIA のいくつかの例外についても説明します。
ヘルパー オブジェクト
このセクションでは、 FormRegion オブジェクトを例として使用し、Outlook PIA のオブジェクトに対する典型的なヘルパー クラスを示します。 FormRegion オブジェクトがオブジェクト モデルに追加されたのは Outlook 2007 のときです。 PIA の FormRegion オブジェクトに関連するものには、図 1 に示すインターフェイス、クラス、およびデリゲートがあります。
図 1. FormRegion オブジェクトを Outlook オブジェクト モデルと Outlook PIA で表す
FormRegion オブジェクトとそのメソッド、プロパティ、およびイベント メンバーへのアクセスに最も頻繁に使用するインターフェイスが、FormRegion インターフェイスです。 ただし、FormRegion .NET インターフェイスを FormRegion COM オブジェクトの正確なミラーイメージと見なすべきではありません。Visual Studio のオブジェクト ブラウザーを見ると、FormRegion インターフェイスが別のインターフェイスである _FormRegion インターフェイスから継承されていることがわかります。 実際、FormRegion インターフェイスは、COM タイプ ライブラリに基づいて Outlook PIA を作成した結果による、いくつかのインターフェイスとクラスのうちの 1 つに過ぎません。
Outlook は、Outlook PIA を作成するために .NET Framework のタイプ ライブラリ インポーター (TLBIMP) を使用して COM タイプ ライブラリのタイプの定義を共通言語ランタイム アセンブリの同等の定義に変換します。 COM における FormRegion オブジェクトは、実際には、 FormRegion オブジェクトで実装されるインターフェイスを定義する次の 2 つのインターフェイスから成るコクラスとなります。
プライマリ インターフェイス _FormRegion
イベント インターフェイス FormRegionEvents
TLBIMP は、 _FormRegion と FormRegionEvents をタイプ ライブラリから直接インポートします。
TLBIMP では、プライマリ インターフェイスとイベント インターフェイスをインポートする以外に、COM オブジェクトと同じ名前の .NET インターフェイスと、オブジェクトの名前を使用して "クラス" を追加する .NET クラスが作成されます。 FormRegion オブジェクトの場合、TLBIMP は次を作成します。
.NET インターフェイス FormRegion
.NET クラス FormRegionClass
このトピックで説明する .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 では公開されます。
非推奨オブジェクトのもう 1 つの例は、 MAPIFolder オブジェクトです。 Outlook 2007 以降のオブジェクト モデルでは、 MAPIFolder オブジェクトに代わって Folder オブジェクトを使用することになりました。 既存のソリューションが MAPIFolder を参照している場合はそれを Folder に変更し、Outlook 2007 以降の新しいソリューションでは、常に Folder オブジェクトだけを使用するようにしてください。 非管理対象のソリューションの場合、 MAPIFolder オブジェクトは、Visual Basic Editor のオブジェクト ブラウザーで隠しオブジェクトとしてもリストされません。
管理対象のソリューションの場合、Outlook PIA では、 Folder オブジェクトとそのメンバーにアクセスするための Folder インターフェイスが公開されますが、 Folder オブジェクトのメンバーを定義するインターフェイスとして MAPIFolder も公開されます。