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

フィルタグラフマネージャ

フィルタグラフマネージャはDirectShowの中で中心的な役割を果たすコンポーネントです。

アプリケーションはフィルタグラフマネージャを使ってフィルタグラフを構築します。また運用も直接フィルターにコマンドを送らず、フィルタグラフマネージャ経由で行います。フィルタグラフマネージャはグラフ内のイベント処理や同期など運用についても処理します。

フィルタグラフマネージャはIGraphBuilderインターフェースを実装しています。IGraphBuilderはCoCreateInstance()関数にIID_IGraphBuilderを指定して取得します。以下にコード例を示します。

    IGraphBuilder       *m_pGB;

    HRESULT result = CoCreateInstance(
        CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&m_pGB);
    if (FAILED(result))     throw result;
IGraphBuilderは特に意識する必要はありませんが、以下のような継承関係にあります。
IUnknown > IFilterGraph > IGraphBuilder

IGraphBuilderインターフェースは主にフィルターの挿入・削除・構築を行います。

関数名 機能 インターフェース
AddFilter 新しくフィルターを追加し名前を付ける。 IFilterGraph
RemoveFilter グラフ内のフィルターを削除する。 IFilterGraph
QueryInterface 支援インターフェースを取得する。 IUnknown
RenderFile ファイル名からグラフを構築する。 IGraphBuilder
Render グラフを構築する。 IGraphBuilder
EnumFilters フィルターの列挙子を取得する。 IFilterGraph

プログラムの終わりでIGraphBuilderインターフェースをリリースします。

    SAFE_RELEASE(m_pGB);

ドキュメントの先頭へ

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