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 |
---|---|
|
O parâmetro ppDevices é NULL. |
|
DataFlow de parâmetro ou dwStateMask está fora do intervalo. |
|
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 |