System.Runtime.InteropServices.Marshal.GetActiveObject メソッド

この記事では、この API のリファレンス ドキュメントへの補足的な解説を提供します。

GetActiveObject は、OLEAUT32.DLLから COM GetActiveObject 関数を公開します。ただし、後者は、このメソッドで想定されるプログラム識別子 () ではなく、クラス識別子 (ProgIDCLSID) を想定しています。 登録されていない ProgIDCOM オブジェクトの実行中のインスタンスを取得するには、プラットフォーム呼び出しを使用して COM GetActiveObject 関数を定義します。 プラットフォーム呼び出しの詳細については、「アンマネージ DLL 関数の使用」を参照してください

ProgID と CLSID

レジストリのHKEY_CLASStandard EditionS_ROOT サブツリー内のキーには、さまざまなサブキーの種類が含まれています。 ほとんどのサブキーは ProgID であり、わかりやすい文字列を CLSID にマップします。 アプリケーションでは、多くの場合、数値の CLSID ではなく、人間が判読できる文字列を使用します。 多くの場合、コンポーネントにはバージョンに依存しない ProgID があり、システムにインストールされている最新バージョンのコンポーネントにマップされます。

アプリケーションとコンポーネントは、主に ProgID を使用して対応する CLSID を取得します。