IManagedAddin インターフェイス
IManagedAddin インターフェイスを実装すると、マネージ アドインを読み込むコンポーネントを作成できます。このインターフェイスは、2007 Microsoft Office system に追加された機能です。
[
object,
uuid(B9CEAB65-331C-4713-8410-DDDAF8EC191A),
pointer_default(unique),
oleautomation
]
interface IManagedAddin : IUnknown
{
HRESULT Load(
[in] BSTR bstrManifestURL,
[in] IDispatch *pdispApplication);
HRESULT Unload();
};
メソッド
IManagedAddin インターフェイスで定義されているメソッドを次の表に示します。
名前 |
Description |
---|---|
Microsoft Office アプリケーションがマネージ アドインを読み込むときに呼び出されます。 |
|
Microsoft Office アプリケーションがマネージ アドインをアンロードする直前に呼び出されます。 |
解説
2007 Microsoft Office system 以降の Microsoft Office アプリケーションでは、Office アドインを読み込むのに IManagedAddin インターフェイスが使用されるようになりました。IManagedAddin インターフェイスを実装すると、アドイン ローダー (VSTOLoader.dll) や Visual Studio Tools for Office Runtimeを使用する代わりに、ユーザー独自のアドイン ローダーやマネージ アドイン用のランタイムを作成できます。詳細については、「アプリケーション レベルのアドインのアーキテクチャ」を参照してください。
マネージ アドイン読み込みのしくみ
アプリケーションが起動すると、次の処理が行われます。
アプリケーションによって、次のレジストリ キーにあるエントリが検索され、アドインが検出されます。
HKEY_CURRENT_USER\Software\Microsoft\Office\<application name>\Addins\
このレジストリ キーにある各エントリは、アドインの一意な ID です。通常、このエントリがアドイン アセンブリの名前となっています。
アプリケーションによって、各アドイン エントリにある Manifest エントリが検索されます。
マネージ アドインは、HKEY_CURRENT_USER\Software\Microsoft\Office\<application name>\Addins\<add-in ID> にある Manifest エントリに、マニフェストの完全パスを格納できます。マニフェストは、アドインの読み込みに使用される情報を提供するファイル (通常は XML ファイル) です。
アプリケーションによって Manifest エントリが検出されると、そのアプリケーションはマネージ アドイン ローダー コンポーネントの読み込みを試みます。このアプリケーションによる読み込みは、IManagedAddin インターフェイスを実装する COM オブジェクトの作成することで行われます。
Visual Studio Tools for Office Runtimeには、アドイン ローダー コンポーネント (VSTOLoader.dll) が含まれていますが、IManagedAddin インターフェイスの実装によって、ユーザー独自のアドイン ローダーを作成することもできます。
アプリケーションによって IManagedAddin::Load メソッドが呼び出され、Manifest エントリの値に渡されます。
IManagedAddin::Load メソッドによって、読み込み中のアドイン用のアプリケーション ドメインの設定やセキュリティ ポリシーの設定などのアドイン読み込みに必要なタスクが実行されます。
Microsoft Office アプリケーションがマネージ アドインの検出と読み込みに使用するレジストリ キーの詳細については、「アプリケーション レベルのアドインのレジストリ エントリ」を参照してください。
IManagedAddin の実装に関するガイダンス
IManagedAddin を実装する場合には、次の CLSID を使用して実装のある DLL を登録する必要があります。
99D651D7-5F7C-470E-8A3B-774D5D9536AC
Microsoft Office アプリケーションは、この CLSID を使用して IManagedAddin を実装する COM オブジェクトを作成します。
注意 |
---|
この CLSID は、Visual Studio Tools for Office Runtimeで VSTOLoader.dll によっても使用されます。したがって、ユーザー独自のアドイン ローダーおよびランタイム コンポーネントを作成するために IManagedAddin を使用した場合、これらのコンポーネントは Visual Studio Tools for Office Runtimeを使用してアドインを実行しているコンピューターには配置できません。 |