Condividi tramite


Interfaccia IMMNotificationClient (mmdeviceapi.h)

L'interfaccia IMMNotificationClient fornisce notifiche quando un dispositivo endpoint audio viene aggiunto o rimosso, quando lo stato o le proprietà di un dispositivo endpoint cambiano o quando viene apportata una modifica al ruolo predefinito assegnato a un dispositivo endpoint. Diversamente dalle altre interfacce di questa sezione, implementate dal componente di sistema dell'API MMDevice, un client API MMDevice implementa l'interfaccia IMMNotificationClient . Per ricevere notifiche, il client passa un puntatore all'istanza dell'interfaccia IMMNotificationClient come parametro del metodo IMMDeviceEnumerator::RegisterEndpointNotificationCallback .

Dopo aver registrato l'interfaccia IMMNotificationClient , il client riceve le notifiche degli eventi sotto forma di callback tramite i metodi dell'interfaccia.

Ogni metodo nell'interfaccia IMMNotificationClient riceve, come uno dei parametri di input, una stringa ID endpoint che identifica il dispositivo endpoint audio oggetto della notifica. La stringa identifica in modo univoco il dispositivo rispetto a tutti gli altri dispositivi endpoint audio nel sistema. I metodi nell'implementazione dell'interfaccia IMMNotificationClient devono considerare questa stringa come opaca. Ovvero, nessuno dei metodi deve tentare di analizzare il contenuto della stringa per ottenere informazioni sul dispositivo. Il motivo è che il formato stringa non è definito e potrebbe passare da un'implementazione del modulo di sistema API MMDevice alla successiva.

Un client può usare la stringa ID endpoint che riceve come parametro di input in una chiamata a un metodo IMMNotificationClient in due modi:

  • Il client può creare un'istanza del dispositivo identificata dalla stringa ID dell'endpoint. Il client esegue questa operazione chiamando il metodo IMMDeviceEnumerator::GetDevice e specificando la stringa ID endpoint come parametro di input.
  • Il client può confrontare la stringa dell'ID endpoint con la stringa ID endpoint di un'istanza del dispositivo esistente. Per ottenere la seconda stringa id endpoint, il client chiama il metodo IMMDevice::GetId dell'istanza del dispositivo. Se le due stringhe corrispondono, identificano lo stesso dispositivo.
Nell'implementazione dell'interfaccia IMMNotificationClient , il client deve osservare queste regole per evitare deadlock e comportamenti non definiti: Per un esempio di codice che implementa l'interfaccia IMMNotificationClient , vedere Eventi del dispositivo.

Ereditarietà

L'interfaccia IMMNotificationClient eredita dall'interfaccia IUnknown . IMMNotificationClient include anche questi tipi di membri:

Metodi

L'interfaccia IMMNotificationClient include questi metodi.

 
IMMNotificationClient::OnDefaultDeviceChanged

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

Il metodo OnDeviceAdded indica che è stato aggiunto un nuovo dispositivo endpoint audio.
IMMNotificationClient::OnDeviceRemoved

Il metodo OnDeviceRemoved indica che un dispositivo endpoint audio è stato rimosso.
IMMNotificationClient::OnDeviceStateChanged

Il metodo OnDeviceStateChanged indica che lo stato di un dispositivo endpoint audio è cambiato.
IMMNotificationClient::OnPropertyValueChanged

Il metodo OnPropertyValueChanged indica che il valore di una proprietà appartenente a un dispositivo endpoint audio è stato modificato.

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

Interfacce audio di base

IMMDevice::GetId

IMMDeviceEnumerator::GetDevice

IMMDeviceEnumerator::RegisterEndpointNotificationCallback

IMMDeviceEnumerator::UnregisterEndpointNotificationCallback

MMDevice API