Método ICreateDevEnum::CreateClassEnumerator (strmif.h)
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
O método CreateClassEnumerator cria um enumerador para uma categoria de dispositivo especificada.
Sintaxe
HRESULT CreateClassEnumerator(
[in] REFCLSID clsidDeviceClass,
[out] IEnumMoniker **ppEnumMoniker,
[in] DWORD dwFlags
);
Parâmetros
[in] clsidDeviceClass
Especifica o CLSID (identificador de classe) da categoria de dispositivo. Consulte Categorias de Filtro.
[out] ppEnumMoniker
Recebe um ponteiro para a interface IEnumMoniker . O chamador deve liberar a interface.
[in] dwFlags
Combinação bit a bit de zero ou mais sinalizadores. Se zero, o método enumera cada filtro na categoria. Se algum sinalizador for definido, a enumeração incluirá apenas filtros que correspondem aos sinalizadores especificados. Os seguintes sinalizadores são definidos:
Sinalizador | Descrição |
---|---|
CDEF_DEVMON_CMGR_DEVICE | Enumerar codecs de áudio ou vídeo usando o gerenciador de compactação de áudio (ACM) ou o VCM (gerenciador de compactação de vídeo). |
CDEF_DEVMON_DMO | Enumerar DMOs (Objetos de Mídia DirectX). |
CDEF_DEVMON_FILTER | Enumerar filtros nativos do DirectShow. |
CDEF_DEVMON_PNP_DEVICE | Enumerar dispositivos de hardware Plug and Play. |
Retornar valor
Retorna um dos seguintes valores HRESULT .
Código de retorno | Descrição |
---|---|
|
Êxito. |
|
Sem memória. |
|
A categoria especificada por clsidDeviceClass não existe ou está vazia. |
|
Argumento de ponteiro NULL. |
Comentários
Se a categoria não existir ou estiver vazia, o valor retornado será S_FALSE e o parâmetro ppEnumMoniker receberá o valor NULL. Portanto, teste o valor retornado S_OK em vez de usar a macro SUCCEEDED :
C++ |
---|
IEnumMoniker *pEnum = NULL; hr = pSysDevEnum->CreateClassEnumerator( CLSID_VideoCompressorCategory, &pEnum, 0); if (hr == S_OK) { // Safe to dereference pEnum. pEnum->Release(); } |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | strmif.h (inclua Dshow.h) |
Biblioteca | Strmiids.lib |