3

オプションでいくつかの追加機能をサポートする可能性のある C++ クラスがあります (抽象インターフェイスによって定義されます)。Microsoft COM では、 を使用してクラスにそのような機能を要求する方法がありますQueryInterface(GUID, void**)。これには、すべてのインターフェイスを void* に再解釈_キャストする必要があります。私の質問は、キャストを使用せずに同じことを達成するより安全な方法はありますか?

4

1 に答える 1

3

COM には、オブジェクトによってサポートされている他のインターフェイスからインターフェイスを取得する必要があります。その要件に従って生きる必要はありません。サポートするすべてのインターフェースにゲッターを追加するだけです。

struct IBase
{
    IMoreCapabilities * GetMoreCapabilities();
};
于 2012-05-07T18:10:20.827 に答える