次の方法で共有


IGraphBuilder::AddSourceFilter メソッド (strmif.h)

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

メソッドは AddSourceFilter 、指定したファイルのソース フィルターをフィルター グラフに追加します。

構文

HRESULT AddSourceFilter(
  [in]  LPCWSTR     lpcwstrFileName,
  [in]  LPCWSTR     lpcwstrFilterName,
  [out] IBaseFilter **ppFilter
);

パラメーター

[in] lpcwstrFileName

読み込むファイルの名前を指定します。

[in] lpcwstrFilterName

ソース フィルターの名前を指定します。

[out] ppFilter

フィルターの 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 インターフェイスへのポインターを返します。 ファイルのメディアの種類と圧縮スキームを決定するために、Filter Graph Manager は、カスタム ファイルの種類の登録に関する記事に記載されているように、ファイルの最初の数バイトを読み取り、特定のバイト パターン を探します

アプリケーションは、フィルター グラフの残りの部分を構築する役割を担います。 これを行うには、 IBaseFilter::EnumPins を呼び出して、ソース フィルターの出力ピンを列挙します。 次に、 IGraphBuilder::Connect メソッドまたは IGraphBuilder::Render メソッドのいずれかを使用します。

メソッドが成功した場合、 IBaseFilter インターフェイスには未処理の参照カウントがあります。 呼び出し元はインターフェイスを解放する必要があります。

既定の再生用にファイルをレンダリングするには、 IGraphBuilder::RenderFile メソッドを使用します。

フィルター グラフ マネージャーは、フィルターがグラフから削除されるか、フィルター グラフ マネージャーが解放されるまで、フィルターの参照カウントを保持します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー strmif.h (Dshow.h を含む)
Library Strmiids.lib

こちらもご覧ください

エラーコードと成功コード

IGraphBuilder インターフェイス