2

異なるソースから取得した 2 つのインターフェイス参照を指定します。それらが同じインスタンスによって実装されているかどうかをプログラムで確認する方法はありますか?

インターフェイス参照の単純な等価性チェックは常に失敗します。


編集:独立した問題であることが判明した元の質問の大部分は、新しい質問に移動されました。

4

1 に答える 1

8

IUnknown インターフェイスを照会して、これらのポインターを比較できます。他のすべてのインターフェイス ポインターは、毎回同じ値を返すとは限りません。

コンポーネントオブジェクトモデルのルールから:

オブジェクト ID。特定のインターフェイス IUnknown の特定のオブジェクト インスタンスの任意のインターフェイスでの QueryInterface への呼び出しは、常に同じ物理ポインター値を返す必要があります。これにより、任意の 2 つのインターフェイスで QueryInterface(IID_IUnknown, ...) を呼び出し、結果を比較して、オブジェクトの同じインスタンス (同じ COM オブジェクト ID) を指しているかどうかを判断できます。

于 2008-11-27T09:23:46.293 に答える