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 |
---|---|
|
El parámetro ppDevices es NULL. |
|
DataFlow o dwStateMask de parámetros están fuera del intervalo. |
|
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 |