Outlook PIA とオブジェクト モデルの関係
Outlook プライマリ相互運用機能アセンブリ (PIA) は、Outlook で正式に公開されている相互運用機能アセンブリであり、これによって COM ベースの Outlook オブジェクト モデルを操作するためのマネージ アドイン用のマネージ インターフェイスが定義されます。 「COM と .NET の相互運用性の概要」では、COM ベースのタイプ ライブラリと比較して、相互運用機能アセンブリによってマネージ クライアント プログラミングが、技術的にどのようにサポートされるかについて説明しています。 このトピックでは、COM ベースの Outlook オブジェクト モデルのオブジェクトやメンバーが PIA の対応するマネージ インターフェイスやクラスにマップされるしくみについて、その概要を示します。
ヘルパー オブジェクト
Visual Basic Editor のオブジェクト ブラウザーにリストされる Outlook タイプ ライブラリのオブジェクト (図 1) と、Visual Studio のオブジェクト ブラウザーにリストされる PIA のオブジェクト (図 2) を比較すると、PIA に非常に多くの特別なヘルパー オブジェクトがあることに驚かされます。 オブジェクトの中には、 Action オブジェクトのように、特定のインターフェイス ( Action インターフェイス) にマップされるものもあれば、 Account オブジェクトのように、PIA の対応する特定のインターフェイスに必ずしもマップされないものもあります。
図 1. オブジェクト ブラウザーに表示される、COM ベースの Outlook タイプ ライブラリのオブジェクト
図 2. オブジェクト ブラウザーに表示される、Outlook のオブジェクト
これらのインターフェイスの多くは、オブジェクト名の先頭にアンダースコア (_) を付けた名前を持ちます。 たとえば、Visual Studio オブジェクト ブラウザーでは、 Account オブジェクトは、パブリック インターフェイス _Account とパブリック クラス Account にマップされます。 実際、Visual Studio オブジェクト ブラウザーでは明示的に示されていませんが、 Account オブジェクトは、2 つのインターフェイスと PIA の 1 つのクラス ( _Account インターフェイス、 Account coclass、 AccountClass クラス) にマップされます。
これらのインターフェイス、コクラス、およびクラスと、それらがどこから得られるか、またオブジェクトがタイプ ライブラリから PIA にマップされるしくみの詳細については、「 Outlook PIA でのオブジェクト」を参照してください。
独立したイベント インターフェイス
イベントを持つオブジェクトを詳しく調べると、PIA のイベントはそのオブジェクトの他のメソッドおよびプロパティ メンバーとはグループ化されておらず、独自のインターフェイス、イベント ハンドラー、およびクラスを形成するようにグループ化されていることがわかります。
タイプ ライブラリから PIA にメソッドとプロパティがマップされる方法の詳細については、「Outlook PIA でのメソッドとプロパティ」を参照してください。 イベントのインターフェイス、委任、およびクラスの詳細については、「Outlook PIA でのイベント」を参照してください。
隠しオブジェクトと非推奨オブジェクト
PIA には、COM オブジェクト モデルでは非推奨になっていてオプションで非公開としてマークされるオブジェクト、メンバー、および列挙も含まれています。 それらのオブジェクト、メンバー、および列挙の多くは、PIA では公開されています。 ただし、それらが公開されているのは PIA の完全性を保つためであり、それらがソリューション開発者によって使用されることを想定しておらず、したがって、それらに関しては最小限の説明しかありません。 この例外として、 _DocSiteControl オブジェクトや _RecipientControl オブジェクトのように、タイプ ライブラリでは隠しオブジェクトとされていても、PIA 解説書でファースト クラス オブジェクトとして公開され、説明されているものもあります。
_DocSiteControl オブジェクトの詳細については、「_DDocSiteControl」を参照してください。 _RecipientControl オブジェクトの詳細については、「_DRecipientControl」を参照してください。