オブジェクトがサポートするインターフェイスの決定

[このページに関連付けられている機能である カスタム ファイルハンドラーとストリーム ハンドラーは、従来の機能です。 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; 
}