Metodo ICreateDevEnum::CreateClassEnumerator (strmif.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il metodo CreateClassEnumerator crea un enumeratore per una categoria di dispositivi specificata.

Sintassi

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

Parametri

[in] clsidDeviceClass

Specifica l'identificatore di classe (CLSID) della categoria di dispositivi. Vedere Categorie di filtri.

[out] ppEnumMoniker

Riceve un puntatore all'interfaccia IEnumMoniker . Il chiamante deve rilasciare l'interfaccia.

[in] dwFlags

Combinazione bit per bit di zero o più flag. Se zero, il metodo enumera ogni filtro nella categoria. Se sono impostati flag, l'enumerazione include solo filtri corrispondenti ai flag specificati. Vengono definiti i flag seguenti:

Flag Descrizione
CDEF_DEVMON_CMGR_DEVICE Enumerare codec audio o video, usando il gestore di compressione audio (ACM) o il gestore di compressione video (VCM).Enumerate audio or video codecs, using the audio compression manager (ACM) or video compression manager (VCM).
CDEF_DEVMON_DMO Enumerare oggetti multimediali DirectX .Enumerate DirectX Media Objects (DMOs).
CDEF_DEVMON_FILTER Enumerare i filtri DirectShow nativi.
CDEF_DEVMON_PNP_DEVICE Enumerare Plug and Play dispositivi hardware.

Valore restituito

Restituisce uno dei valori HRESULT seguenti.

Codice restituito Descrizione
S_OK
Operazione completata.
E_OUTOFMEMORY
Memoria insufficiente.
S_FALSE
La categoria specificata da clsidDeviceClass non esiste o è vuota.
E_POINTER
Argomento puntatore NULL.

Commenti

Se la categoria non esiste o è vuota, il valore restituito è S_FALSE e il parametro ppEnumMoniker riceve il valore NULL. Verificare quindi il valore restituito S_OK anziché usare la macro SUCCEEDED :

C++
IEnumMoniker *pEnum = NULL;
hr = pSysDevEnum->CreateClassEnumerator(
    CLSID_VideoCompressorCategory, &pEnum, 0);
if (hr == S_OK) 
{
    // Safe to dereference pEnum.
    pEnum->Release();
}
Usare l'interfaccia IEnumMoniker per enumerare i moniker che rappresentano i filtri nella categoria del dispositivo. I moniker supportano l'interfaccia IMoniker . I moniker creati da CreateClassEnumerator supportano anche l'interfaccia IGetCapabilitiesKey .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione strmif.h (include Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici di errore e di esito positivo

Interfaccia ICreateDevEnum