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

El método EnumAudioEndpoints genera una colección de dispositivos de punto de conexión de audio que cumplen los criterios especificados.

Sintaxis

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

Parámetros

[in] dataFlow

Dirección del flujo de datos para los dispositivos de punto de conexión de la colección. El llamador debe establecer este parámetro en uno de los siguientes valores de enumeración EDataFlow :

eRender

eCapture

eAll

Si el autor de la llamada especifica eAll, el método incluye puntos de conexión de representación y captura en la colección.

[in] dwStateMask

Estado o estados de los puntos de conexión que se van a incluir en la colección. El autor de la llamada debe establecer este parámetro en el or bit a bit de una o varias de las siguientes DEVICE_STATE_XXX constantes:

DEVICE_STATE_ACTIVE

DEVICE_STATE_DISABLED

DEVICE_STATE_NOTPRESENT

DEVICE_STATE_UNPLUGGED

Por ejemplo, si el autor de la llamada establece el parámetro dwStateMask en DEVICE_STATE_ACTIVE | DEVICE_STATE_UNPLUGGED, el método incluye puntos de conexión que están activos o desconectados de sus conectores, pero excluye los puntos de conexión que están en adaptadores de audio que se han deshabilitado o no están presentes. Para incluir todos los puntos de conexión, independientemente del estado, establezca dwStateMask = DEVICE_STATEMASK_ALL.

[out] ppDevices

Puntero a una variable de puntero en la que el método escribe la dirección de la interfaz IMMDeviceCollection del objeto device-collection. A través de este método, el autor de la llamada obtiene una referencia contada a la interfaz . El autor de la llamada es responsable de liberar la interfaz, cuando ya no es necesario, llamando al método Release de la interfaz. Si se produce un error en la llamada a EnumAudioEndpoints , *ppDevices es NULL.

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los posibles códigos de retorno incluyen, pero no están limitados a, los valores que se muestran en la tabla siguiente.

Código devuelto Descripción
E_POINTER
El parámetro ppDevices es NULL.
E_INVALIDARG
DataFlow o dwStateMask de parámetros están fuera del intervalo.
E_OUTOFMEMORY
Memoria insuficiente

Comentarios

Por ejemplo, la siguiente llamada enumera todos los dispositivos de punto de conexión de representación de audio que están activos actualmente (presentes y no deshabilitados):


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

En el fragmento de código anterior, la variable hr es de tipo HRESULT, pDevEnum es un puntero a una interfaz IMMDeviceEnumerator y pEndpoints es un puntero a una interfaz IMMDeviceCollection .

Ejemplos

Para obtener un ejemplo de código que llama al método EnumAudioEndpoints , consulte Propiedades del dispositivo.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mmdeviceapi.h

Consulte también

IMMDeviceCollection (Interfaz)

IMMDeviceEnumerator (Interfaz)