カクタスソフトウェア
カクタスソフトウェア
サウンド MIDI マルチメディア アプリケーション

インターフェースの取得

NonDelegatingQueryInterface()関数はフィルターで支援しているインターフェースを取得する関数です。支援しているインターフェースすべてをチェックします。該当するものが無ければ、基底クラスのNonDelegatingQueryInterface()関数をコールします。

IIDキーに対応するインターフェースをGetInterface()関数を使って取得します。

IID インターフェース 説明
IID_IMyFilter IMyFilter フィルター本体のインターフェース
IID_IPersistStream IPersistStream CPersistStreamのインターフェース
IID_ISpecifyPropertyPages ISpecifyPropertyPages プロパティページのインターフェース

以下にコード例を示します。

STDMETHODIMP CMyFilter::NonDelegatingQueryInterface(
    REFIID          riid,
    void            **ppv)
{
    CheckPointer(ppv, E_POINTER);

    if (riid == IID_IMyFilter)
    {
        return GetInterface((IMyFilter*)this, ppv);
    }
    else if (riid == IID_IPersistStream)
    {
        return GetInterface((IPersistStream*)this, ppv);
    }
    else if (riid == IID_ISpecifyPropertyPages)
    {
        return GetInterface((ISpecifyPropertyPages*)this, ppv);
    }
    else
    {
        return CTransInPlaceFilter::NonDelegatingQueryInterface(riid, ppv);
    }
}

ドキュメントの先頭へ

カクタスソフトウェア 技術協力 資料室 資料室の広場 SourceForge.jp お問い合わせ