Compartir a través de


Método IMMNotificationClient::OnDefaultDeviceChanged (mmdeviceapi.h)

El método OnDefaultDeviceChanged notifica al cliente que ha cambiado el dispositivo de punto de conexión de audio predeterminado para un rol de dispositivo determinado.

Sintaxis

HRESULT OnDefaultDeviceChanged(
  [in] EDataFlow flow,
  [in] ERole     role,
  [in] LPCWSTR   pwstrDefaultDeviceId
);

Parámetros

[in] flow

Dirección del flujo de datos del dispositivo de punto de conexión. Este parámetro se establece en uno de los siguientes valores de enumeración EDataFlow :

eRender

eCapture

La dirección del flujo de datos para un dispositivo de representación es eRender. La dirección del flujo de datos para un dispositivo de captura es eCapture.

[in] role

Rol de dispositivo del dispositivo de punto de conexión de audio. Este parámetro se establece en uno de los siguientes valores de enumeración ERole :

eConsole

eMultimedia

eCommunications

[in] pwstrDefaultDeviceId

Puntero a la cadena de identificador de punto de conexión que identifica el dispositivo de punto de conexión de audio. Este parámetro apunta a una cadena de caracteres anchos terminada en null que contiene el identificador del punto de conexión. La cadena sigue siendo válida durante la llamada. Si el usuario ha quitado o deshabilitado el dispositivo predeterminado para un rol determinado y ningún otro dispositivo está disponible para asumir ese rol, pwstrDefaultDevice es NULL.

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, devuelve un código de error.

Comentarios

Los tres parámetros de entrada especifican la dirección del flujo de datos, el rol de dispositivo y la cadena de identificador de punto de conexión del nuevo dispositivo de punto de conexión de audio predeterminado.

En Windows Vista, la API MMDevice admite roles de dispositivo, pero los programas de interfaz de usuario proporcionados por el sistema no lo hacen. La interfaz de usuario de Windows Vista permite al usuario seleccionar un dispositivo de audio predeterminado para su representación y un dispositivo de audio predeterminado para la captura. Cuando el usuario cambia la representación predeterminada o el dispositivo de captura, el sistema asigna los tres roles de dispositivo (eConsole, eMultimedia y eCommunications) al nuevo dispositivo. Por lo tanto, cuando el usuario cambia la representación o el dispositivo de captura predeterminados, el sistema llama tres veces al método OnDefaultDeviceChanged del cliente, una vez para cada uno de los tres roles de dispositivo.

En una versión futura de Windows, la interfaz de usuario podría permitir al usuario asignar roles individuales a diferentes dispositivos. En ese caso, si el usuario cambia la asignación de solo uno o dos roles de dispositivo a un nuevo dispositivo de representación o captura, el sistema llamará al método OnDefaultDeviceChanged del cliente solo una o dos veces (es decir, una llamada por rol cambiado). Dependiendo de cómo responde el método OnDefaultDeviceChanged a los cambios de rol, el comportamiento de una aplicación de audio desarrollada para ejecutarse en Windows Vista podría cambiar cuando se ejecuta en una versión futura de Windows. Para obtener más información, consulte Roles de dispositivo en Windows Vista.

Para obtener un ejemplo de código que implementa el método OnDefaultDeviceChanged , consulte Eventos de 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

Interfaz IMMNotificationClient