Share via


Metodo IAudioEndpointVolume::RegisterControlChangeNotify (endpointvolume.h)

Il metodo RegisterControlChangeNotify registra l'interfaccia di callback di notifica di un client.

Sintassi

HRESULT RegisterControlChangeNotify(
  [in] IAudioEndpointVolumeCallback *pNotify
);

Parametri

[in] pNotify

Puntatore all'interfaccia IAudioEndpointVolumeCallback che il client sta registrando per i callback di notifica. Se il metodo RegisterControlChangeNotify ha esito positivo, chiama il metodo AddRef sull'interfaccia IAudioEndpointVolumeCallback del client.

Valore restituito

Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i possibili codici restituiti includono, ma non sono limitati, i valori illustrati nella tabella seguente.

Codice restituito Descrizione
E_POINTER
Il parametro pNotify è NULL.

Commenti

Questo metodo registra un'interfaccia IAudioEndpointVolumeCallback da chiamare dal sistema quando cambia il livello del volume o lo stato di disattivazione di un endpoint. Il chiamante implementa l'interfaccia IAudioEndpointVolumeCallback .

Quando le notifiche non sono più necessarie, il client può chiamare il metodo IAudioEndpointVolume::UnregisterControlChangeNotify per terminare le notifiche.

Prima che il client rilasci il riferimento finale all'interfaccia IAudioEndpointVolumeCallback , deve chiamare UnregisterControlChangeNotify per annullare la registrazione dell'interfaccia. In caso contrario, l'applicazione perde le risorse contenute negli oggetti IAudioEndpointVolumeCallback e IAudioEndpointVolume . Si noti che RegisterControlChangeNotify chiama il metodo IAudioEndpointVolumeCallback::AddRef e UnregisterControlChangeNotify chiama il metodo IAudioEndpointVolumeCallback::Release . Se il client esegue un errore rilasciando il riferimento all'interfaccia IAudioEndpointVolumeCallback prima di chiamare UnregisterControlChangeNotify, l'oggetto IAudioEndpointVolume non rilascia mai il riferimento all'interfaccia IAudioEndpointVolumeCallback . Ad esempio, un'implementazione IAudioEndpointVolumeCallback non progettata correttamente potrebbe chiamare UnregisterControlChangeNotify dal distruttore per l'oggetto IAudioEndpointVolumeCallback . In questo caso, il client non chiamerà UnregisterControlChangeNotify finché l'oggetto IAudioEndpointVolume non rilascia il riferimento all'interfaccia IAudioEndpointVolumeCallback e l'oggetto IAudioEndpointVolume non rilascia il riferimento all'interfaccia IAudioEndpointVolumeCallback finché il client non chiama UnregisterControlChangeNotify. Per altre informazioni sui metodi AddRef e Release , vedere la discussione sull'interfaccia IUnknown nella documentazione di Windows SDK.

Inoltre, il client deve chiamare UnregisterControlChangeNotify prima di rilasciare il riferimento finale all'oggetto IAudioEndpointVolume . In caso contrario, l'oggetto perde la risorsa di archiviazione allocata per contenere le informazioni di registrazione. Dopo aver registrato un'interfaccia di notifica, il client continua a ricevere notifiche solo se l'oggetto IAudioEndpointVolume esiste.

Per un esempio di codice che chiama RegisterControlChangeNotify, vedere Controlli del volume degli endpoint.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione endpointvolume.h

Vedi anche

Interfaccia IAudioEndpointVolume

IAudioEndpointVolume::UnregisterControlChangeNotify

Interfaccia IAudioEndpointVolumeCallback