IGraphBuilder::AddSourceFilter メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/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 を返します。 使用可能な値は次のとおりです。
リターン コード | 説明 |
---|---|
|
正常終了しました。 |
|
ソース フィルターは 、IFileSourceFilter インターフェイスをサポートしていません。 |
|
メモリ不足です。 |
|
NULL ポインター引数。 |
|
このファイルのソース フィルターを読み込めませんでした。 |
|
ファイルまたはオブジェクトが見つかりません。 |
|
このファイルのメディアの種類が認識されませんでした。 |
注釈
このメソッドは、指定したファイルを読み取ることができるインストールされているフィルターを検索します。 見つかると、メソッドはそれをフィルター グラフに追加し、フィルターの 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 |