次の方法で共有


クラス情報の提供

多くの場合、オブジェクトのクライアントがオブジェクトの型情報を調べるのに役立ちます。 オブジェクトの CLSID が与えられると、クライアントはレジストリ エントリを使用してオブジェクトのタイプ ライブラリを見つけ、タイプ ライブラリをスキャンして、CLSID に一致するライブラリ内のコクラス エントリを見つけることができます。

ただし、すべてのオブジェクトに CLSID があるわけではありませんが、型情報を提供する必要があります。 さらに、クライアントにとっては、レジストリ エントリから同じ情報を抽出するという面倒な作業を行う代わりに、単純にオブジェクトの型情報を要求する方法があると便利です。 この機能は、接続可能なオブジェクトの発信インターフェイスを処理する場合に重要です。 (接続可能なオブジェクトがこの機能を提供する方法の詳細については、「IProvideClassInfo の使用」を参照してください。)

このような場合、クライアントは IProvideClassInfo または IProvideClassInfo2 のオブジェクトに対してクエリを実行できます。 これらのインターフェイスが存在する場合、クライアントは GetClassInfo メソッドを呼び出して、インターフェイスの型情報を取得します。

IProvideClassInfo または IProvideClassInfo2 を実装することで、オブジェクトは、そのクラス全体の型情報を提供できることを指定します。つまり、タイプ ライブラリのコクラス セクションがあれば、そのセクションに何を記述するかということです。 GetClassInfo は、オブジェクトのコクラス情報に対応する ITypeInfo ポインターを返します。 この ITypeInfo ポインターを使用して、クライアントはオブジェクトのすべての受信インターフェイス定義と送信インターフェイス定義を調べることができます。

このオブジェクトは、IProvideClassInfo2 を提供することもできます。 IProvideClassInfo2 インターフェイスは、IProvideClassInfo の単純な拡張機能です。これにより、既定のイベント セットのオブジェクトの送信インターフェイス識別子をすばやく簡単に取得できます。 IProvideClassInfo2 IProvideClassInfo から派生しています。

COM クライアントとサーバー