IFilterGraph2

IFilterGraph2はIFilterGraphおよびIGraphBuilderを継承し、その機能を拡張するものです。

IFilterGraph2に追加されるメソッド
メソッド 説明
AddSourceFilterForMoniker モニカに基づいたソース フィルタを追加する。
ReconnectEx  
RenderEx  

フィルタの追加

int AddSourceFilterForMoniker(
    IMoniker pMoniker,          // IMonikerインターフェイス
    IBindCtx pCtx,              // IBindCtx バインド コンテキスト インターフェイス
    string lpcwstrFilterName,   // ファイル名
    out IBaseFilter ppFilter    // 追加されたフィルタの取得用
    );

ビデオ キャプチャ デバイス用のフィルタの追加

// ビデオ キャプチャ デバイスのリストを取得する
DsDevice[] devices = DsDevice.GetDevicesOfCat( FilterCategory.VideoInputDevice );

DsDevice videoCaptureDevice = devices[ deviceIndex ];
IBaseFilter videoCaptureFilter;

// ビデオ キャプチャ デバイス用のフィルタを追加する
int hr = iFilterGraph2.AddSourceFilterForMoniker(
    videoCaptureDevice.Mon,
    null,
    videoCaptureDevice.Name,
    out videoCaptureFilter
    );
DsError.ThrowExceptionForHR( hr );