Método IMMDeviceEnumerator::EnumAudioEndpoints (mmdeviceapi.h)

O método EnumAudioEndpoints gera uma coleção de dispositivos de ponto de extremidade de áudio que atendem aos critérios especificados.

Sintaxe

HRESULT EnumAudioEndpoints(
  [in]  EDataFlow           dataFlow,
  [in]  DWORD               dwStateMask,
  [out] IMMDeviceCollection **ppDevices
);

Parâmetros

[in] dataFlow

A direção de fluxo de dados para os dispositivos de ponto de extremidade na coleção. O chamador deve definir esse parâmetro como um dos seguintes valores de enumeração EDataFlow :

eRender

eCapture

eAll

Se o chamador especificar eAll, o método incluirá pontos de extremidade de renderização e captura na coleção.

[in] dwStateMask

O estado ou os estados dos pontos de extremidade que devem ser incluídos na coleção. O chamador deve definir esse parâmetro para o OR bit a bit de uma ou mais das seguintes constantes DEVICE_STATE_XXX :

DEVICE_STATE_ACTIVE

DEVICE_STATE_DISABLED

DEVICE_STATE_NOTPRESENT

DEVICE_STATE_UNPLUGGED

Por exemplo, se o chamador definir o parâmetro dwStateMask como DEVICE_STATE_ACTIVE | DEVICE_STATE_UNPLUGGED, o método inclui pontos de extremidade ativos ou desconectados de suas tomadas, mas exclui pontos de extremidade que estão em adaptadores de áudio que foram desabilitados ou não estão presentes. Para incluir todos os pontos de extremidade, independentemente do estado, defina dwStateMask = DEVICE_STATEMASK_ALL.

[out] ppDevices

Ponteiro para uma variável de ponteiro na qual o método grava o endereço da interface IMMDeviceCollection do objeto device-collection. Por meio desse método, o chamador obtém uma referência contada à interface . O chamador é responsável por liberar a interface, quando ela não é mais necessária, chamando o método Release da interface. Se a chamada EnumAudioEndpoints falhar, *ppDevices será NULL.

Valor retornado

Se o método for bem-sucedido, retornará S_OK. Se falhar, os códigos de retorno possíveis incluem, mas não se limitam a, os valores mostrados na tabela a seguir.

Código de retorno Descrição
E_POINTER
O parâmetro ppDevices é NULL.
E_INVALIDARG
DataFlow de parâmetro ou dwStateMask está fora do intervalo.
E_OUTOFMEMORY
Sem memória.

Comentários

Por exemplo, a chamada a seguir enumera todos os dispositivos de ponto de extremidade de renderização de áudio que estão ativos no momento (presentes e não desabilitados):


  hr = pDevEnum->EnumAudioEndpoints(
                   eRender, DEVICE_STATE_ACTIVE,
                   &pEndpoints);

No fragmento de código anterior, a variável hr é do tipo HRESULT, pDevEnum é um ponteiro para uma interface IMMDeviceEnumerator e pEndpoints é um ponteiro para uma interface IMMDeviceCollection .

Exemplos

Para obter um exemplo de código que chama o método EnumAudioEndpoints , consulte Propriedades do dispositivo.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mmdeviceapi.h

Confira também

IMMDeviceCollection Interface

IMMDeviceEnumerator Interface