Freigeben über


IBaseFilter::JoinFilterGraph-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 JoinFilterGraph -Methode benachrichtigt den Filter, dass er das Filterdiagramm verknüpft oder verlassen hat.

Syntax

HRESULT JoinFilterGraph(
  [in] IFilterGraph *pGraph,
  [in] LPCWSTR      pName
);

Parameter

[in] pGraph

Zeiger auf die IFilterGraph-Schnittstelle des Filtergraph-Managers oder NULL , wenn der Filter das Diagramm verlässt.

[in] pName

Zeiger auf eine Breitzeichenzeichenfolge, die einen Namen für den Filter angibt.

Rückgabewert

Gibt bei erfolgreicher Ausführung S_OK oder einen HRESULT-Wert zurück, der die Fehlerursache angibt.

Hinweise

Wenn der Filtergraph-Manager dem Filterdiagramm einen Filter hinzufügt, ruft er diese Methode mit einem Zeiger auf sich selbst auf. Dieser instance des Filters wird über den pName-Parameter ein Name zugewiesen. Der Name kann durch Aufrufen der IBaseFilter::QueryFilterInfo-Methode abgerufen werden.

Wenn der Filtergraph-Manager den Filter aus dem Graphen entfernt, ruft er diese Methode mit einem NULL-Zeiger auf.

Anwendungen sollten diese Methode niemals aufrufen. Um dem Diagramm einen Filter hinzuzufügen, rufen Sie die IFilterGraph::AddFilter-Methode im Filterdiagramm-Manager auf.

Filterentwickler: Der Filter kann den IFilterGraph-Schnittstellenzeiger speichern und nach anderen Filter Graph Manager-Schnittstellen abfragen. Es darf jedoch niemals eine Referenzanzahl im Filter Graph-Manager enthalten. Dadurch wird eine kreisförmige Verweisanzahl erstellt, da der Filterdiagramm-Manager eine Verweisanzahl für den Filter behält. Eine kreisförmige Verweisanzahl verhindert, dass die Schnittstelle ordnungsgemäß freigegeben wird, was zu einem Deadlock führen kann. Die IFilterGraph-Schnittstelle ist garantiert gültig, bis der Filter Graph-Manager diese Methode erneut mit dem Wert NULL aufruft. Eine Implementierung dieser Methode finden Sie in der CBaseFilter::JoinFilterGraph-Methode .

Anforderungen

Anforderung Wert
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

Weitere Informationen

Fehler- und Erfolgscodes

IBaseFilter-Schnittstelle