IFilterMapper2::EnumMatchingFilters-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 EnumMatchingFilters
Methode listet registrierte Filter auf, die die angegebenen Anforderungen erfüllen.
Syntax
HRESULT EnumMatchingFilters(
[out] IEnumMoniker **ppEnum,
[in] DWORD dwFlags,
[in] BOOL bExactMatch,
[in] DWORD dwMerit,
[in] BOOL bInputNeeded,
[in] DWORD cInputTypes,
[in] const GUID *pInputTypes,
[in] const REGPINMEDIUM *pMedIn,
[in] const CLSID *pPinCategoryIn,
[in] BOOL bRender,
[in] BOOL bOutputNeeded,
[in] DWORD cOutputTypes,
[in] const GUID *pOutputTypes,
[in] const REGPINMEDIUM *pMedOut,
[in] const CLSID *pPinCategoryOut
);
Parameter
[out] ppEnum
Empfängt einen Zeiger auf die IEnumMoniker-Schnittstelle . Verwenden Sie diesen Schnittstellenzeiger, um Filtermoniker aus der Enumeration abzurufen. Der Aufrufer muss die Schnittstelle freigeben.
[in] dwFlags
Reserviert, muss Null sein.
[in] bExactMatch
Boolescher Wert, der angibt, ob eine genaue Übereinstimmung erforderlich ist. Weitere Informationen finden Sie unter Hinweise.
[in] dwMerit
Minimaler Leistungswert. Die Enumeration schließt Filter mit einem geringeren Wert aus. Eine Liste der Verdienstwerte finden Sie unter Verdienst. Wenn dwMerit höher als MERIT_DO_NOT_USE ist, schließt die Enumeration auch Filter aus, deren Kategorie einen Wert aufweist, der kleiner oder gleich MERIT_DO_NOT_USE ist. (Siehe Filterkategorien.)
[in] bInputNeeded
Boolescher Wert, der angibt, ob der Filter über einen Eingabenadel verfügen muss. Wenn der Wert TRUE ist, muss der Filter über mindestens einen Eingabenadel verfügen.
[in] cInputTypes
Anzahl der in pInputTypes angegebenen Eingabemedientypen.
[in] pInputTypes
Zeiger auf ein Array von GUID-Paaren, die Haupt- und Untertypen angeben, damit die Eingabenadeln übereinstimmen. Die Größe des Arrays ist 2 * cInputTypes. Das Array kann NULL sein. Einzelne Arraymember können GUID_NULL werden, die einem beliebigen Typ entsprechen. (Siehe Medientypen.)
[in] pMedIn
Zeiger auf eine REGPINMEDIUM-Struktur , die das Medium für die Eingabepins angibt. Legen Sie bei Bedarf auf NULL fest.
[in] pPinCategoryIn
Zeiger auf eine GUID, die die Eingabenadelkategorie angibt. (Siehe Pin Property Set.) Legen Sie bei Bedarf auf NULL fest.
[in] bRender
Boolescher Wert, der angibt, ob der Filter seine Eingabe rendern muss. Wenn true, muss der angegebene Filter seine Eingabe rendern. (Dieser Wert entspricht dem Feld bRendered in der REGFILTERPINS-Struktur , das zum Registrieren von Informationen über die Pins des Filters verwendet wird.)
[in] bOutputNeeded
Boolescher Wert, der angibt, ob der Filter über einen Ausgabenadel verfügen muss. Bei TRUE muss der Filter über mindestens einen Ausgabestift verfügen.
[in] cOutputTypes
Anzahl der in pOutputTypes angegebenen Eingabemedientypen.
[in] pOutputTypes
Zeiger auf ein Array von GUID-Paaren, die Haupt- und Untertypen angeben, damit die Ausgabepins übereinstimmen. Die Größe des Arrays ist 2 * cOutputTypes. Das Array kann NULL sein. Einzelne Arraymember können GUID_NULL werden, die einem beliebigen Typ entsprechen.
[in] pMedOut
Zeiger auf eine REGPINMEDIUM-Struktur , die das Medium für die Ausgabepins angibt. Legen Sie bei Bedarf auf NULL fest.
[in] pPinCategoryOut
Zeiger auf eine GUID, die die Ausgabeheftkategorie angibt. (Siehe Pin Property Set.) Legen Sie bei Bedarf auf NULL fest.
Rückgabewert
Gibt einen HRESULT-Wert zurück. Mögliche Werte sind die in der folgenden Tabelle gezeigten Werte.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Erfolg |
|
Fehler |
|
Der Arbeitsspeicher reicht nicht aus |
|
NULL-Zeigerargument |
Hinweise
Um Filter zu finden, deren Eingabenadeln mit einer bestimmten Gruppe von Medientypen übereinstimmen, deklarieren Sie ein Array mit Haupttyp-GUIDs und Untertyp-GUIDs, die paarweise sortiert sind. Übergeben Sie die Arrayadresse im pInputTypes-Parameter , und legen Sie den cInputTypes-Parameter auf die Anzahl der Paare (also die halbe Arraygröße) fest:
C++ |
---|
GUID arrayInTypes[2]; arrayInTypes[0] = MEDIATYPE_Video; arrayInTypes[1] = GUID_NULL; |
Wenn der Wert des bExactMatch-ParametersTRUE ist, sucht diese Methode nach Filtern, die genau den Werten entsprechen, die Sie für Medientyp, Anheftkategorie und Anheftmedium angeben. Wenn der Wert FALSE ist, werden Filter, die den Wert NULL für eines dieser Elemente registrieren, als Übereinstimmung betrachtet. (Tatsächlich fungiert ein NULL-Wert in der Registrierung als Einplatzhalter.)
Wenn Sie NULL für Den Medientyp, die Anheftungskategorie oder das Anheftmedium angeben, wird jeder Filter als Übereinstimmung mit diesem Parameter betrachtet.
Wenn ein Pin keine Medientypen registriert hat, wird er von dieser Methode nicht als Übereinstimmung mit dem Medientyp betrachtet.
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 |