Metodo IAudioSessionControl::UnregisterAudioSessionNotification (audiopolicy.h)

Il metodo UnregisterAudioSessionNotification elimina una registrazione precedente dal client per ricevere notifiche.

Sintassi

HRESULT UnregisterAudioSessionNotification(
  [in] IAudioSessionEvents *NewNotifications
);

Parametri

[in] NewNotifications

Puntatore a un'interfaccia IAudioSessionEvents implementata dal client. Il client ha passato questo stesso puntatore di interfaccia alla gestione sessione in una chiamata precedente al metodo IAudioSessionControl::RegisterAudioSessionNotification . Se il metodo UnregisterAudioSessionNotification ha esito positivo, chiama il metodo Release sull'interfaccia IAudioSessionEvents 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 NewNotifications è NULL.
E_NOTFOUND
L'interfaccia specificata non è stata registrata in precedenza dal client o è già stata rimossa.

Commenti

Il client chiama questo metodo quando non deve più ricevere notifiche. Il metodo UnregisterAudioSessionNotification rimuove la registrazione di un'interfaccia IAudioSessionEvents registrata in precedenza con il gestore di sessioni chiamando il metodo IAudioSessionControl::RegisterAudioSessionNotification .

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

Per un esempio di codice che chiama il metodo UnregisterAudioSessionNotification , vedi Eventi audio per applicazioni audio legacy.

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 audiopolicy.h

Vedi anche

Interfaccia IAudioSessionControl

IAudioSessionControl::RegisterAudioSessionNotification

Interfaccia IAudioSessionEvents