IFilterGraph2::AddSourceFilterForMoniker メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
メソッドは AddSourceFilterForMoniker
、 IMoniker ポインターからソース フィルターを作成し、フィルターをグラフに追加します。 たとえば、ビデオ キャプチャ デバイスなどのシステム デバイスのモニカーを取得し、そのデバイスのビデオ キャプチャ フィルターを追加できます。 (システム デバイス モニカーの詳細については、 ICreateDevEnum インターフェイスを参照してください)。
構文
HRESULT AddSourceFilterForMoniker(
[in] IMoniker *pMoniker,
[in] IBindCtx *pCtx,
[in] LPCWSTR lpcwstrFilterName,
[out] IBaseFilter **ppFilter
);
パラメーター
[in] pMoniker
IMoniker インターフェイスへのポインター。
[in] pCtx
IBindCtx バインド コンテキスト インターフェイスへのポインター。
[in] lpcwstrFilterName
フィルターの名前。
[out] ppFilter
ソース フィルターの IBaseFilter ポインターへのポインターを受け取ります。 呼び出し元はインターフェイスを解放する必要があります。
戻り値
および HRESULT 値を返します。 使用可能な値は次のとおりです。
リターン コード | 説明 |
---|---|
|
成功しました。 |
|
成功;指定した名前が重複していたため、フィルター グラフ マネージャーによって名前が変更されました。 |
|
失敗しました。 |
|
メモリ不足です。 |
|
重複する名前のフィルターを追加できませんでした。 |
|
のソース フィルターを読み込めませんでした。 |
|
このファイルのメディアの種類が認識されません。 |
解説
フィルター グラフ マネージャーは、フィルターがグラフから削除されるか、フィルター グラフ マネージャーが解放されるまで、フィルターの参照カウントを保持します。
例
C++ |
---|
IBaseFilter *pSource = NULL;IMoniker *pMoniker = NULL; |
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |
Library | Strmiids.lib |