IFilterGraph2::AddSourceFilterForMoniker-Methode (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die AddSourceFilterForMoniker -Methode erstellt einen Quellfilter aus einem IMoniker-Zeiger und fügt den Filter dem Diagramm hinzu. Sie können beispielsweise einen Moniker für ein Systemgerät abrufen, z. B. ein Videoaufnahmegerät, und einen Videoaufnahmefilter für dieses Gerät hinzufügen. (Weitere Informationen zu Systemgerätemonikern finden Sie unter ICreateDevEnum-Schnittstelle .)

Syntax

HRESULT AddSourceFilterForMoniker(
  [in]  IMoniker    *pMoniker,
  [in]  IBindCtx    *pCtx,
  [in]  LPCWSTR     lpcwstrFilterName,
  [out] IBaseFilter **ppFilter
);

Parameter

[in] pMoniker

Zeiger auf die IMoniker-Schnittstelle .

[in] pCtx

Zeiger auf eine IBindCtx-Bindungskontextschnittstelle .

[in] lpcwstrFilterName

Name für den Filter.

[out] ppFilter

Empfängt einen Zeiger auf den IBaseFilter-Zeiger des Quellfilters. Der Aufrufer muss die Schnittstelle freigeben.

Rückgabewert

Gibt den HRESULT-Wert zurück. Die folgenden Werte sind möglich.

Rückgabecode Beschreibung
S_OK
Erfolg.
VFW_S_DUPLICATE_NAME
Erfolg; Der angegebene Name war jedoch ein Duplikat, sodass der Filter Graph Manager den Namen geändert hat.
E_FAIL
Fehler.
E_OUTOFMEMORY
Nicht genügend Arbeitsspeicher.
VFW_E_DUPLICATE_NAME
Fehler beim Hinzufügen eines Filters mit einem doppelten Namen.
VFW_E_CANNOT_LOAD_SOURCE_FILTER
Der Quellfilter für konnte nicht geladen werden.
VFW_E_UNKNOWN_FILE_TYPE
Der Medientyp dieser Datei wird nicht erkannt.

Bemerkungen

Der Filtergraph-Manager enthält eine Verweisanzahl für den Filter, bis der Filter aus dem Diagramm entfernt oder der Filtergraph-Manager freigegeben wird.

Beispiele

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

Verwenden Sie IEnumMonikers, um den IMoniker-Zeiger abzurufen. (Nicht angezeigt.)

// 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();

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile strmif.h (include Dshow.h)
Bibliothek Strmiids.lib

Siehe auch

Fehler- und Erfolgscodes

IFilterGraph2-Schnittstelle