ICaptureGraphBuilder2::FindInterface-Methode (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die FindInterface -Methode durchsucht das Diagramm nach einer angegebenen Schnittstelle, beginnend mit einem angegebenen Filter. Sie können die Suche auf einen Abschnitt des Diagramms Upstream oder nach dem Filter beschränken oder auf eine bestimmte Pinkategorie oder einen bestimmten Medientyp beschränken.

Syntax

HRESULT FindInterface(
  [in]  const GUID  *pCategory,
  [in]  const GUID  *pType,
  [in]  IBaseFilter *pf,
  [in]  REFIID      riid,
  [out] void        **ppint
);

Parameter

[in] pCategory

Ein Zeiger auf eine GUID, die die Suchkriterien angibt. Weitere Informationen finden Sie unter Hinweise. Folgende Werte sind möglich:

  • &LOOK_UPSTREAM_ONLY.
  • &LOOK_DOWNSTREAM_ONLY.
  • Eine der in Pin-Eigenschaftensatz aufgeführten Pinkategorien.
  • NULL
Weitere Informationen finden Sie unter Hinweise.

[in] pType

Zeiger auf eine GUID, die den Hauptmedientyp eines Ausgabepins oder NULL angibt.

[in] pf

Zeiger auf die IBaseFilter-Schnittstelle des Filters. Die -Methode beginnt mit der Suche über diesen Filter.

[in] riid

Schnittstellenbezeichner (IID) der zu suchenden Schnittstelle.

[out] ppint

Adresse einer Variablen, die den Schnittstellenzeiger empfängt. Stellen Sie sicher, dass Sie den abgerufenen Schnittstellenzeiger loslassen, wenn Sie mit der Schnittstelle fertig sind.

Rückgabewert

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

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
E_FAIL
Fehler.
E_NOINTERFACE
Diese Schnittstelle wird nicht unterstützt.
E_POINTER
NULL-Zeigerargument.

Hinweise

In einem Erfassungsdiagramm können verschiedene Filter und Pins Schnittstellen zum Festlegen von Eigenschaften wie Komprimierungsparametern (IAMVideoCompression) oder Streamformaten (IAMStreamConfig) verfügbar machen. Abhängig vom Aufnahmegerät können andere nützliche Schnittstellen IAMCrossbar sein, die analoge Signale weitergibt, oder IAMTVTuner, der ein TV-Tuner-Gerät steuert. Sie können diese Methode verwenden, um eine Schnittstelle zu finden, ohne speziellen Code zu schreiben, der das Diagramm durchläuft.

Wichtig Rufen Sie diese Methode nicht auf, um einen IVideoWindow-Schnittstellenzeiger abzurufen. Fragen Sie immer den Filtergraph-Manager für diese Schnittstelle ab. Andernfalls reagiert der Filtergraph-Manager nicht ordnungsgemäß auf Änderungen der Bildschirmauflösung und andere Ereignisse.
 
Wenn der pCategory-ParameterNULL ist, durchsucht diese Methode den gesamten Graphen nach der angeforderten Schnittstelle. Ausgehend von dem filter, der durch den pf-Parameter angegeben wird, werden die folgenden Objekte im Graphen abfragt.
  • Der Filter
  • Die Pins des Filters
  • Alle nachgeschalteten Filter, einschließlich ihrer Pins
  • Alle Upstream Filter, einschließlich ihrer Pins
Sie können die Suche einschränken, indem Sie die Parameter pCategory und pType wie folgt festlegen:
  • Wenn pCategory gleich &LOOK_UPSTREAM_ONLY ist, beginnt die Suche mit den Eingabenadeln des Filters und setzt Upstream fort. Er enthält weder den Filter noch etwas, das dem Filter nachgeschaltet ist. Der pType-Parameter wird ignoriert.
  • Wenn pCategory gleich &LOOK_DOWNSTREAM_ONLY ist, beginnt die Suche mit den Ausgabepins des Filters und wird nachgeschaltet fortgesetzt. Der Filter oder Upstream aus dem Filter ist nicht enthalten. Der pType-Parameter wird ignoriert.
  • Wenn pCategory eine Pinkategorie angibt, ist der nachgeschaltete Teil der Suche auf Ausgabepins im Filter beschränkt, die sowohl der Pinkategorie als auch dem im pType-Parameter angegebenen Medientyp entsprechen. In diesem Fall durchsucht die Methode auch den Filter, und alles Upstream aus dem Filter.
Wenn pCategory nicht NULL ist, kann die Methode darüber hinaus bestimmte WDM-Filter (Windows Driver Model) Upstream aus dem in pf angegebenen Filter hinzufügen. Weitere Informationen finden Sie in den Hinweisen unter "Unterstützende Filter" in diesem Abschnitt.

Pinkategorien sind nützlich, um Pinschnittstellen in Aufnahmefiltern zu finden. Beispielsweise kann ein Erfassungsfilter über separate Pins für die Erfassung und die Vorschau verfügen. Wenn Sie eine Pinkategorie angeben, sollten Sie auch den Medientyp angeben, um sicherzustellen, dass die Methode den richtigen Filter auswählt und anheftet.

Einige Videoaufnahmefilter verfügen über einen Videoport-Pin (PIN_CATEGORY_VIDEOPORT) anstelle einer Vorschau-Pin. Wenn Sie PIN_CATEGORY_PREVIEW und MEDIATYPE_Video angeben, behandelt die Methode alle Videoport-Pins als Vorschau-Pins. Ihre Anwendung muss diese Möglichkeit nicht testen.

Unterstützende Filter. Wenn ein Aufnahmegerät einen WDM-Treiber (Windows Driver Model) verwendet, erfordert das Diagramm möglicherweise bestimmte Filter Upstream aus dem WDM-Videoaufnahmefilter, z. B. einen TV Tuner-Filter oder einen Analog Video Crossbar-Filter. Wenn der pCategory-Parameter nicht gleich NULL ist, fügt diese Methode automatisch alle erforderlichen WDM-Filter in das Diagramm ein. Dazu fragt er die Eingabenadeln im Erfassungsfilter ab, um zu bestimmen, welche Medien sie unterstützen, und verbindet sie mit übereinstimmenden Filtern. Wenn der pCategory-ParameterNULL ist, fügt die Methode die Upstream Filter nicht hinzu.

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

ICaptureGraphBuilder2-Schnittstelle