Microsoft DirectX 8.0 |
このインターフェイスは、フィルタ グラフを構築するメソッドを提供する IFilterGraph インターフェイスおよび IGraphBuilder インターフェイスを拡張する。
フィルタ グラフ マネージャがこのインターフェイスを実装する。アプリケーションでグラフを構築するとき、このインターフェイスを使用すると、追加のメソッドを利用できる。
IFilterGraph2 には、IFilterGraph および IGraphBuilder にない 2 つのメソッドがある。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IFilterGraph メソッド 説明 AddFilter グラフにフィルタを追加し、そのフィルタに名前を付ける。 RemoveFilter グラフからフィルタを削除する。 EnumFilters グラフのフィルタすべてに対して列挙子を提供する。 FindFilterByName 特定の名前で追加されたフィルタを検索する。 ConnectDirect 2 つのピンを直接接続する (フィルタを通さない)。 Reconnect 既存のピン接続を切断し、同じピンに再接続する。 Disconnect 特定のピンを切断する。 SetDefaultSyncSource デフォルトの同期基準 (クロック) を設定する。 IGraphBuilder メソッド 説明 Connect 2 つのピンを接続する。直接接続できない場合は変換を介して接続する。 Render 特定の出力ピンにフィルタ チェーンを追加してレンダリングする。 RenderFile 指定されたファイルをレンダリングするフィルタ グラフを構築する。 AddSourceFilter 特定のファイルのフィルタ グラフにソース フィルタを追加する。IGraphBuilder::RenderFile メソッドはこのメソッドを呼び出してソース フィルタを検索する。 SetLogFile ログ ファイルを設定する。操作を実行しようとしたとき行われた各アクションは、このファイルに出力される。 Abort 現在のタスクからできる限り早く戻るようにグラフ ビルダに要求する。 ShouldOperationContinue 現在の操作が継続すべきかどうかを照会する。 IFilterGraph2 メソッド 説明 AddSourceFilterForMoniker モニカに基づいたソース フィルタを追加する。 ReconnectEx 既存のピン接続を切断し、特定のメディア タイプを使用して同じピンに再接続する。
モニカに基づいたソース フィルタを追加する。たとえば、ビデオ キャプチャ デバイスなどのシステム デバイス用のモニカを取得し、そのデバイス用のビデオ キャプチャ フィルタを追加することができる (システム デバイス モニカの詳細については、「ICreateDevEnum」を参照すること)。
構文
HRESULT AddSourceFilterForMoniker(
IMoniker *pMoniker,
IBindCtx *pCtx,
LPCWSTR lpcwstrFilterName,
IBaseFilter **ppFilter );
パラメータ
- pMoniker
- [in] IMoniker インターフェイスへのポインタ。
- pCtx
- [in] コンテキストをバインドする IBindCtx インターフェイスへのポインタ。
- lpcwstrFilterName
- [in] フィルタ名へのポインタ。
- ppFilter
- [out] IBaseFilter インターフェイスへのポインタのアドレス。
戻り値
メソッドが成功した場合、戻り値は次のいずれかの値になる。
S_OK 成功。 VFW_S_DUPLICATE_NAME 名前が重複したフィルタの追加に成功した。 メソッドが失敗した場合、戻り値は次のいずれかのエラー値になる。
E_FAIL 失敗。 E_OUTOFMEMORY メモリ不足。 VFW_E_DUPLICATE_NAME 名前が重複したフィルタの追加に失敗した。 VFW_E_CANNOT_LOAD_SOURCE_FILTER ソース フィルタをロードできない。 VFW_E_UNKNOWN_FILE_TYPE このファイルのメディア タイプが認識されない。
注意
指定されたモニカのためのソース フィルタをグラフに追加するとき、IMoniker::BindToStorage COM メンバ関数は IStream インターフェイスを照会する。これに失敗すると、IMoniker::BindToObject が IBaseFilter インターフェイスを取得しようとする。
既存のピン接続を切断し、特定のメディア タイプを使用して同じピンに再接続する。
構文
HRESULT ReconnectEx(
IPin *ppin,
const AM_MEDIA_TYPE *pmt );
パラメータ
- ppin
- [in] 切断および再接続するピンへのポインタ。
- pmt
- [in] 再接続に使用するメディア タイプへのポインタ。既存のメディア タイプを使用するには、NULL を指定する。
戻り値
S_OK 成功。 S_FALSE ピンが接続されていない。エラーなし。 メソッドが失敗した場合、戻り値は次のいずれかのエラー値になる。
E_FAIL 失敗。 E_POINTER Null ポインタ引数。 VFW_E_NOT_STOPPED フィルタが停止していないが、実行中の再接続がサポートされていない。
注意
ReconnectEx メソッドは、IFilterGraph::Reconnect メソッド同様、ピンとそのピンが現在接続されているピンの再接続をスケジュールする。このメソッドを呼び出すときにメディア タイプを指定すると、ピン側で、元の接続に使用されていたタイプを確認したり、可能性のある新しいタイプを列挙したりする必要がないため、再接続が成功する可能性が高くなる。
参照