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 |
---|---|
|
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