Metodo IMMNotificationClient::OnDefaultDeviceChanged (mmdeviceapi.h)

Il metodo OnDefaultDeviceChanged notifica al client che il dispositivo dell'endpoint audio predefinito per un determinato ruolo del dispositivo è cambiato.

Sintassi

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

Parametri

[in] flow

Direzione del flusso di dati del dispositivo endpoint. Questo parametro è impostato su uno dei valori di enumerazione EDataFlow seguenti:

eRender

eCapture

La direzione del flusso di dati per un dispositivo di rendering è eRender. La direzione del flusso di dati per un dispositivo di acquisizione è eCapture.

[in] role

Ruolo del dispositivo dell'endpoint audio. Questo parametro è impostato su uno dei valori di enumerazione ERole seguenti:

eConsole

eMultimedia

eCommunications

[in] pwstrDefaultDeviceId

Puntatore alla stringa ID dell'endpoint che identifica il dispositivo dell'endpoint audio. Questo parametro punta a una stringa di caratteri wide con terminazione null contenente l'ID endpoint. La stringa rimane valida per la durata della chiamata. Se l'utente ha rimosso o disabilitato il dispositivo predefinito per un ruolo specifico e nessun altro dispositivo è disponibile per presupporre che tale ruolo, pwstrDefaultDevice è NULL.

Valore restituito

Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, viene restituito un codice di errore.

Commenti

I tre parametri di input specificano la direzione del flusso di dati, il ruolo del dispositivo e la stringa ID endpoint del nuovo dispositivo endpoint audio predefinito.

In Windows Vista l'API MMDevice supporta i ruoli del dispositivo, ma i programmi dell'interfaccia utente forniti dal sistema non sono. L'interfaccia utente in Windows Vista consente all'utente di selezionare un dispositivo audio predefinito per il rendering e un dispositivo audio predefinito per l'acquisizione. Quando l'utente modifica il rendering predefinito o acquisisce il dispositivo, il sistema assegna tutti e tre i ruoli del dispositivo (eConsole, eMultimedia e eCommunications) al nuovo dispositivo. Pertanto, quando l'utente modifica il rendering predefinito o il dispositivo di acquisizione, il sistema chiama il metodo OnDefaultDeviceChanged tre volte, una volta per ognuno dei tre ruoli del dispositivo.

In una versione futura di Windows, l'interfaccia utente potrebbe consentire all'utente di assegnare singoli ruoli a dispositivi diversi. In tal caso, se l'utente modifica l'assegnazione di un solo o due ruoli del dispositivo a un nuovo dispositivo di rendering o acquisizione, il sistema chiamerà il metodo OnDefaultDeviceChanged del client solo una o due volte (ovvero una chiamata per ogni ruolo modificato). A seconda del modo in cui il metodo OnDefaultDeviceChanged risponde alle modifiche al ruolo, il comportamento di un'applicazione audio sviluppata per l'esecuzione in Windows Vista potrebbe cambiare quando viene eseguito in una versione futura di Windows. Per altre informazioni, vedere Ruoli del dispositivo in Windows Vista.

Per un esempio di codice che implementa il metodo OnDefaultDeviceChanged , vedere Eventi del dispositivo.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione mmdeviceapi.h

Vedi anche

Interfaccia IMMNotificationClient