次の方法で共有


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 メソッドを使う。

参照