IGraphBuilder::AddSourceFilter
AddSourceFilter メソッドは、指定されたファイルのソース フィルタをフィルタ グラフに追加する。
構文
HRESULT AddSourceFilter(
LPCWSTR lpwstrFileName,
LPCWSTR lpwstrFilterName,
IBaseFilter **ppFilter
);
パラメータ
lpwstrFileName
[in] ロードするファイルの名前を指定する。
lpwstrFilterName
[in] ソース フィルタの名前を指定する。
ppFilter
[out] ソース フィルタの IBaseFilter インターフェイス ポインタを受け取る変数へのポインタ。
戻り値
HRESULT を返す。可能な値は次のとおりである。
値 | 説明 |
S_OK | 成功。 |
E_NOINTERFACE | ソース フィルタは IFileSourceFilter インターフェイスをサポートしていない。 |
E_OUTOFMEMORY | メモリ不足。 |
E_POINTER | NULL ポインタ引数。 |
VFW_E_CANNOT_LOAD_SOURCE_FILTER | このファイルのソース フィルタをロードできなかった。 |
VFW_E_NOT_FOUND | ファイルまたはオブジェクトが見つからなかった。 |
VFW_E_UNKNOWN_FILE_TYPE | このファイルのメディア タイプが認識されなかった。 |
注意
このメソッドは、指定したファイルを読み取り可能な、インストールされているフィルタを検索する。フィルタが見つかると、メソッドはそのフィルタをフィルタ グラフに追加し、そのフィルタの IBaseFilter インターフェイスへのポインタを返す。指定したファイルのメディア タイプと圧縮スキームを確認するために、フィルタ グラフ マネージャはファイルの最初の数バイトを読み込み、「カスタム ファイル タイプの登録」に記述されている特定のバイト パターンを探す。
アプリケーションが残りのフィルタ グラフを作成しなければならない。作成するには、IBaseFilter::EnumPins を呼び出して、ソース フィルタの出力ピンを列挙する。次に IGraphBuilder::Connect メソッドまたは IGraphBuilder::Render メソッドを使う。
メソッドが成功すると、IBaseFilter インターフェイスに未処理の参照カウントが残る。呼び出し元はそのインターフェイスを必ず解放すること。
デフォルトの再生でファイルをレンダリングするには、IGraphBuilder::RenderFile メソッドを使う。
参照