次の方法で共有


IFilterGraph2::AddSourceFilterForMoniker メソッド (strmif.h)

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

メソッドは AddSourceFilterForMonikerIMoniker ポインターからソース フィルターを作成し、フィルターをグラフに追加します。 たとえば、ビデオ キャプチャ デバイスなどのシステム デバイスのモニカーを取得し、そのデバイスのビデオ キャプチャ フィルターを追加できます。 (システム デバイス モニカーの詳細については、 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 値を返します。 使用可能な値は次のとおりです。

リターン コード 説明
S_OK
成功しました。
VFW_S_DUPLICATE_NAME
成功;指定した名前が重複していたため、フィルター グラフ マネージャーによって名前が変更されました。
E_FAIL
失敗しました。
E_OUTOFMEMORY
メモリ不足です。
VFW_E_DUPLICATE_NAME
重複する名前のフィルターを追加できませんでした。
VFW_E_CANNOT_LOAD_SOURCE_FILTER
のソース フィルターを読み込めませんでした。
VFW_E_UNKNOWN_FILE_TYPE
このファイルのメディアの種類が認識されません。

解説

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

C++
IBaseFilter *pSource = NULL;IMoniker *pMoniker = NULL;

IEnumMonikers を使用して IMoniker ポインターを取得します。 (表示されません。)

// Create a bind context for working with the moniker. IBindCtx pContext=0; hr = CreateBindCtx(0, &pContext); if (SUCCEEDED(hr)) { // Query the Filter Graph Manager for IFilterGraph2. IFilterGraph2 pFG2 = NULL; hr = pGraph->QueryInterface(IID_IFilterGraph2, (void)&pFG2); if (SUCCEEDED(hr)) { // Create the source filter. hr = pFG2->AddSourceFilterForMoniker(pMoniker, pContext, L"Source", &pSource); pFG2->Release(); } pContext->Release(); } pMoniker->Release();

要件

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

関連項目

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

IFilterGraph2 インターフェイス