オブジェクトがサポートするインターフェイスの決定
[このページに関連付けられている機能である カスタム ファイルハンドラーとストリーム ハンドラーは、従来の機能です。 MediaStreamSource クラスに置き換わりました。 MediaStreamSource クラスは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能な場合はカスタム ファイル ハンドラーとストリーム ハンドラーの代わりに MediaStreamSource クラスを使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
QueryInterface メソッドを使用すると、アプリケーションはオブジェクトに対してクエリを実行して、サポートするインターフェイスを決定できます。 サンプル アプリケーションは、 ppv ポインターを現在のインターフェイスに設定します。
STDMETHODIMP CAVIFileCF::QueryInterface(
const IID FAR& iid,
void FAR* FAR* ppv)
{
if (iid == IID_IUnknown)
*ppv = this; // set the interface pointer
// to this instance
else if (iid == IID_IClassFactory)
*ppv = this; // second chance to set the
// interface pointer to this
// instance
else
return ResultFromScode(E_NOINTERFACE);
AddRef(); //Increment the reference count
return NULL;
}