Microsoft DirectX 8.0

IFilterChain インターフェイス

このインターフェイスは、フィルタ グラフのフィルタ チェーンを開始、停止、または削除するメソッドを提供する。フィルタ グラフ マネージャがこのインターフェイスを公開する。

"フィルタ チェーン" は、一連のフォルタから成る 1 つの連続したフィルタである。個々のフィルタには 1 つまでの入力ピンと 1 つの出力ピンが接続される。フィルタ チェーンは、チェーン先頭フィルタとチェーン終端フィルタにより定義される (先頭フィルタと終端フィルタが同じ場合は、フィルタを 1 つだけ含むチェーンとなる)。定義によって、チェーンの先頭からダウンストリームへ終端まで続く単一のストリームができる。

このインターフェイスのメソッドは、ネットワーク経由で複数のストリームを受信するテレビ会議アプリケーションのように、データ ストリーム全体が現れたり消えたりする場合に利用する。詳細については、「動的グラフ作成」を参照すること。キャプチャ フィルタ上の個々のストリームを制御するには、このインターフェイスではなく、IAMStreamControl インターフェイスを使用する。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterface サポートされているインターフェイスへのポインタを取得する。
AddRef 参照カウントをインクリメントする。
Release 参照カウントをデクリメントする。
IFilterChain メソッド説明
StartChainフィルタ チェーンのフィルタをすべて実行状態に切り替える。
StopChainフィルタ チェーンのフィルタをすべて停止状態に切り替える。
RemoveChainフィルタ チェーンのフィルタをすべてフィルタ グラフから削除する。
PauseChainフィルタ チェーンのフィルタをすべて一時ポーズ状態に切り替える。

IFilterChain::PauseChain

IFilterChain インターフェイス

フィルタ チェーンのフィルタをすべてポーズ状態に切り替える。

構文

HRESULT PauseChain(
    IBaseFilter *pStartFilter,
    IBaseFilter *pEndFilter 
);

パラメータ

pStartFilter
[in] チェーン先頭フィルタへのポインタ。
pEndFilter
[in] チェーン終端フィルタへのポインタ。このパラメータが NULL の場合、メソッドは先頭フィルタからダウンストリームへと続く最長のフィルタ チェーンを使用する。

戻り値

成功した場合は、S_OK を返す。メソッドが失敗した場合、戻り値は VFW_E_NOT_PAUSED またはその他の HRESULT 値になる。

注意

所定のフィルタをポーズ状態に切り替えることができない場合、このメソッドはチェーンのフィルタをすべて停止する。このメソッドを呼び出すとき、フィルタ グラフはポーズしていなければならない。

IFilterChain::RemoveChain

IFilterChain インターフェイス

フィルタ チェーンのフィルタをすべてフィルタ グラフから削除する。

構文

HRESULT RemoveChain(
    IBaseFilter *pStartFilter,
    IBaseFilter *pEndFilter 
);

パラメータ

pStartFilter
[in] チェーン先頭フィルタへのポインタ。
pEndFilter
[in] チェーン終端フィルタへのポインタ。このパラメータが NULL の場合、メソッドは先頭フィルタからダウンストリームへと続く最長のフィルタ チェーンを使用する。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、失敗の原因を示す HRESULT 値を返す。

注意

このメソッドはグラフ実行中に呼び出すことができる。その場合、メソッドはチェーン内のフィルタを停止してからフィルタをグラフから削除する。

IFilterChain::StartChain

IFilterChain インターフェイス

フィルタ チェーンのフィルタをすべて実行状態に切り替える。

構文

HRESULT StartChain(
    IBaseFilter *pStartFilter,
    IBaseFilter *pEndFilter 
);

パラメータ

pStartFilter
[in] チェーン先頭フィルタへのポインタ。
pEndFilter
[in] チェーン終端フィルタへのポインタ。このパラメータが NULL の場合、メソッドは先頭フィルタからダウンストリームへと続く最長のフィルタ チェーンを使用する。

戻り値

成功した場合は、S_OK を返す。メソッドが失敗した場合、戻り値は VFW_E_NOT_RUNNING またはその他の HRESULT 値になる。

注意

所定のフィルタを実行状態に切り替えることができない場合、フィルタはすべて停止状態に留まる。このメソッドを呼び出すとき、フィルタ グラフは実行中でなければならない。

IFilterChain::StopChain

IFilterChain インターフェイス

フィルタ チェーンのフィルタをすべて停止状態に切り替える。

構文

HRESULT StopChain( 
    IBaseFilter *pStartFilter, 
    IBaseFilter *pEndFilter 
);

パラメータ

pStartFilter
[in] チェーン先頭フィルタへのポインタ。
pEndFilter
[in] チェーン終端フィルタへのポインタ。このパラメータが NULL の場合、メソッドは先頭フィルタからダウンストリームへと続く最長のフィルタ チェーンを使用する。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、失敗の原因を示す HRESULT 値を返す。