具体的なコンポーネント クラス オブジェクトによって実装されている COM インターフェイスへのポインターを持つと、このインターフェイス (CLSID) を実装する基になるオブジェクトの GUID を取得できますか?
更新 1
より一般的には、次のような関数があり、インターフェイスSetFont(ICanvasFont* font)を実装する基になるオブジェクトがICanvasFont特定のクラス (たとえばMCanvasFont) であるかどうかを判断する方法が必要です。
IUnknown::QueryInterfaceこのインターフェイス ポインタでIPersist、 、IPersistStream、IPersistStreamInitまたはその他のIPersist*インターフェイスのいずれかを取得します。運が良ければ、GetClassIDメソッドはCLSIDクラス識別子を取得します (代替オプションはIProvideClassInfoandIProvideClassInfo::GetClassInfoです)。
この種の情報が存在する必要はないことに注意してください。CLSIDインターフェイス ポインターは、それを実装するクラスになくても有効です。
アップデート。主な目標が提供されたインターフェースで独自の実装を認識することである場合 (「提供されたのICanvasFontは自分のMCanvasFontクラスのインスタンスなのか、それとも何か違うのか?」)、最も簡単で効率的な方法は、追加のプライベート インターフェースをクラス。クエリが成功すると、インスタンスが認識されます。マーシャリングが行われなければstatic_cast、元の C++ ポインターに戻ることさえできます。