IProvideClassInfo の使用
接続可能なオブジェクトは、 IProvideClassInfo インターフェイスと IProvideClassInfo2 インターフェイスを提供して、クライアントがその型情報を簡単に調べることができるようにすることができます。 この機能は、出力インターフェイスを処理する場合に重要です。これは、定義上、オブジェクトによって定義されますが、クライアントによって独自のシンク オブジェクトに実装されます。 場合によっては、接続可能なオブジェクトとシンク オブジェクトの両方に対する出力インターフェイスがコンパイル時に認識されることがあります。これは IPropertyNotifySink の場合です。
ただし、コンパイル時に送信インターフェイス定義を認識するのは、接続可能なオブジェクトだけです。 このような場合、クライアントは、次のように、適切なエントリ ポイントをサポートするシンクを動的に提供できるように、送信インターフェイスの型情報を取得する必要があります。
- クライアントは接続ポイントを列挙し、接続可能なオブジェクトでサポートされている発信インターフェイスの ID を取得するために、接続ポイントごとに IConnectionPoint::GetConnectionInterface を呼び出します。
- クライアントは、 IProvideClassInfo インターフェイスの 1 つについて、接続可能なオブジェクトに対してクエリを実行します。
- クライアントは IProvideClassInfo インターフェイスのメソッドを呼び出して、送信インターフェイスの型情報を取得します。
- クライアントは、発信インターフェイスをサポートするシンク オブジェクトを作成します。
- プロセスは続行され、クライアントは IConnectionPoint::Advise を呼び出してシンクを接続ポイントに接続します。
型情報では、属性 ソース は、 コクラス の下にリストされている インターフェイス または ディスパッチインターフェイス を発信インターフェイスとしてマークします。 この属性が指定されていないリストは、受信インターフェイスと見なされます。
関連トピック