IAudioEndpointVolume::RegisterControlChangeNotify-Methode (endpointvolume.h)

Die RegisterControlChangeNotify-Methode registriert die Benachrichtigungsrückrufschnittstelle eines Clients.

Syntax

HRESULT RegisterControlChangeNotify(
  [in] IAudioEndpointVolumeCallback *pNotify
);

Parameter

[in] pNotify

Zeiger auf die IAudioEndpointVolumeCallback-Schnittstelle , die der Client für Benachrichtigungsrückrufe registriert. Wenn die RegisterControlChangeNotify-Methode erfolgreich ist, ruft sie die AddRef-Methode auf der IAudioEndpointVolumeCallback-Schnittstelle des Clients auf.

Rückgabewert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, können mögliche Rückgabecodes die in der folgenden Tabelle gezeigten Werte umfassen, sind jedoch nicht darauf beschränkt.

Rückgabecode Beschreibung
E_POINTER
Der Parameter pNotify ist NULL.

Hinweise

Diese Methode registriert eine IAudioEndpointVolumeCallback-Schnittstelle , die vom System aufgerufen wird, wenn sich die Volumeebene oder der Stummschaltungszustand eines Endpunkts ändert. Der Aufrufer implementiert die IAudioEndpointVolumeCallback-Schnittstelle .

Wenn Benachrichtigungen nicht mehr benötigt werden, kann der Client die IAudioEndpointVolume::UnregisterControlChangeNotify-Methode aufrufen, um die Benachrichtigungen zu beenden.

Bevor der Client seinen endgültigen Verweis auf die IAudioEndpointVolumeCallback-Schnittstelle freigibt, sollte er UnregisterControlChangeNotify aufrufen, um die Registrierung der Schnittstelle aufzuheben. Andernfalls werden die Ressourcen der Objekte IAudioEndpointVolumeCallback und IAudioEndpointVolume von der Anwendung verloren. Beachten Sie, dass RegisterControlChangeNotify die IAudioEndpointVolumeCallback::AddRef-Methode des Clients aufruft, und UnregisterControlChangeNotify ruft die IAudioEndpointVolumeCallback::Release-Methode auf. Wenn der Client fehlert, indem er seinen Verweis auf die IAudioEndpointVolumeCallback-Schnittstelle vor dem Aufruf von UnregisterControlChangeNotify freigibt, gibt das IAudioEndpointVolume-Objekt nie seinen Verweis auf die IAudioEndpointVolumeCallback-Schnittstelle frei. Beispielsweise kann eine schlecht gestaltete IAudioEndpointVolumeCallback-ImplementierungUnregisterControlChangeNotify vom Destruktor für das IAudioEndpointVolumeCallback-Objekt aufrufen. In diesem Fall ruft der Client UnregisterControlChangeNotify erst auf, wenn das IAudioEndpointVolume-Objekt seinen Verweis auf die IAudioEndpointVolumeCallback-Schnittstelle freigibt, und das IAudioEndpointVolume-Objekt gibt seinen Verweis auf die IAudioEndpointVolumeCallback-Schnittstelle erst frei, wenn der Client UnregisterControlChangeNotify aufruft. Weitere Informationen zu den Methoden AddRef und Release finden Sie in der Windows SDK-Dokumentation zur IUnknown-Schnittstelle .

Darüber hinaus sollte der Client UnregisterControlChangeNotify aufrufen, bevor der endgültige Verweis auf das IAudioEndpointVolume-Objekt freigegeben wird. Andernfalls gibt das Objekt den Speicher aus, den es für die Registrierungsinformationen zugewiesen hat. Nach der Registrierung einer Benachrichtigungsschnittstelle empfängt der Client Benachrichtigungen nur so lange, wie das IAudioEndpointVolume-Objekt vorhanden ist.

Ein Codebeispiel, das RegisterControlChangeNotify aufruft, finden Sie unter Steuerelemente für Endpunktvolume.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile endpointvolume.h

Weitere Informationen

IAudioEndpointVolume-Schnittstelle

IAudioEndpointVolume::UnregisterControlChangeNotify

IAudioEndpointVolumeCallback-Schnittstelle