Método ICreateDevEnum::CreateClassEnumerator (strmif.h)

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El método CreateClassEnumerator crea un enumerador para una categoría de dispositivo especificada.

Sintaxis

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

Parámetros

[in] clsidDeviceClass

Especifica el identificador de clase (CLSID) de la categoría de dispositivo. Consulte Categorías de filtro.

[out] ppEnumMoniker

Recibe un puntero a la interfaz IEnumMoniker . El autor de la llamada debe liberar la interfaz .

[in] dwFlags

Combinación bit a bit de cero o más marcas. Si es cero, el método enumera todos los filtros de la categoría. Si se establecen marcas, la enumeración solo incluye filtros que coincidan con las marcas especificadas. Se definen las marcas siguientes:

Marca Descripción
CDEF_DEVMON_CMGR_DEVICE Enumera los códecs de audio o vídeo, mediante el administrador de compresión de audio (ACM) o el administrador de compresión de vídeo (VCM).
CDEF_DEVMON_DMO Enumerar objetos multimedia de DirectX (DMO).
CDEF_DEVMON_FILTER Enumerar los filtros nativos de DirectShow.
CDEF_DEVMON_PNP_DEVICE Enumerar Plug and Play dispositivos de hardware.

Valor devuelto

Devuelve uno de los siguientes valores HRESULT .

Código devuelto Descripción
S_OK
Correcto.
E_OUTOFMEMORY
Memoria insuficiente
S_FALSE
La categoría especificada por clsidDeviceClass no existe o está vacía.
E_POINTER
Argumento de puntero NULL.

Comentarios

Si la categoría no existe o está vacía, el valor devuelto se S_FALSE y el parámetro ppEnumMoniker recibe el valor NULL. Por lo tanto, pruebe el valor devuelto S_OK en lugar de usar la macro SUCCEEDED :

C++
IEnumMoniker *pEnum = NULL;
hr = pSysDevEnum->CreateClassEnumerator(
    CLSID_VideoCompressorCategory, &pEnum, 0);
if (hr == S_OK) 
{
    // Safe to dereference pEnum.
    pEnum->Release();
}
Use la interfaz IEnumMoniker para enumerar monikers que representan los filtros de la categoría de dispositivo. Monikers admite la interfaz IMoniker . Los monikers creados por CreateClassEnumerator también admiten la interfaz IGetCapabilitiesKey .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado strmif.h (incluye Dshow.h)
Library Strmiids.lib

Consulte también

Códigos de error y éxito

ICreateDevEnum (Interfaz)