Freigeben über


ICreateDevEnum::CreateClassEnumerator-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 CreateClassEnumerator-Methode erstellt einen Enumerator für eine angegebene Gerätekategorie.

Syntax

HRESULT CreateClassEnumerator(
  [in]  REFCLSID     clsidDeviceClass,
  [out] IEnumMoniker **ppEnumMoniker,
  [in]  DWORD        dwFlags
);

Parameter

[in] clsidDeviceClass

Gibt den Klassenbezeichner (CLSID) der Gerätekategorie an. Weitere Informationen finden Sie unter Filtern von Kategorien.

[out] ppEnumMoniker

Empfängt einen Zeiger auf die IEnumMoniker-Schnittstelle . Der Aufrufer muss die Schnittstelle freigeben.

[in] dwFlags

Bitweise Kombination von null oder mehr Flags. Wenn null, listet die Methode jeden Filter in der Kategorie auf. Wenn Flags festgelegt sind, enthält die Enumeration nur Filter, die den angegebenen Flags entsprechen. Die folgenden Flags werden definiert:

Flag Beschreibung
CDEF_DEVMON_CMGR_DEVICE Listen Sie Audio- oder Videocodecs auf, indem Sie den Audiokomprimierungs-Manager (ACM) oder den Videokomprimierungs-Manager (VCM) verwenden.
CDEF_DEVMON_DMO Enumerate DirectX Media Objects (DMOs).
CDEF_DEVMON_FILTER Listen Sie native DirectShow-Filter auf.
CDEF_DEVMON_PNP_DEVICE Listet Plug & Play Hardwaregeräte auf.

Rückgabewert

Gibt einen der folgenden HRESULT-Werte zurück.

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
E_OUTOFMEMORY
Nicht genügend Arbeitsspeicher.
S_FALSE
Die von clsidDeviceClass angegebene Kategorie ist nicht vorhanden oder leer.
E_POINTER
NULL-Zeigerargument.

Hinweise

Wenn die Kategorie nicht vorhanden oder leer ist, wird der Rückgabewert S_FALSE, und der ppEnumMoniker-Parameter empfängt den Wert NULL. Testen Sie daher den Rückgabewert S_OK, anstatt das MAKRO SUCCEEDED zu verwenden:

C++
IEnumMoniker *pEnum = NULL;
hr = pSysDevEnum->CreateClassEnumerator(
    CLSID_VideoCompressorCategory, &pEnum, 0);
if (hr == S_OK) 
{
    // Safe to dereference pEnum.
    pEnum->Release();
}
Verwenden Sie die IEnumMoniker-Schnittstelle , um Moniker aufzulisten, die die Filter in der Gerätekategorie darstellen. Monikers unterstützen die IMoniker-Schnittstelle . Die von CreateClassEnumerator erstellten Moniker unterstützen auch die IGetCapabilitiesKey-Schnittstelle .

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

ICreateDevEnum-Schnittstelle