IPart::RegisterControlChangeCallback-Methode (devicetopology.h)

Die RegisterControlChangeCallback-Methode registriert die IControlChangeNotify-Schnittstelle, die der Client implementiert, um Benachrichtigungen über status Änderungen in diesem Teil zu erhalten.

Syntax

HRESULT RegisterControlChangeCallback(
  [in] REFGUID              riid,
  [in] IControlChangeNotify *pNotify
);

Parameter

[in] riid

Die funktionsspezifische Steuerungsschnittstelle, die auf Steuerungsänderungen überwacht werden soll. Weitere Informationen finden Sie in den Hinweisen.

[in] pNotify

Zeiger auf die IControlChangeNotify-Schnittstelle des Clients. Wenn die Methode erfolgreich ist, ruft sie die AddRef-Methode auf der IControlChangeNotify-Schnittstelle des Clients auf.

Rückgabewert

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

Rückgabecode Beschreibung
E_INVALIDARG
Parameter riid ist kein gültiger Steuerelement-Schnittstellenbezeichner.
E_POINTER
Zeiger pNotify ist NULL.

Hinweise

Legen Sie parameter riid auf einen der folgenden GUID-Werte fest:

  • IID_IAudioAutoGainControl
  • IID_IAudioBass
  • IID_IAudioChannelConfig
  • IID_IAudioInputSelector
  • IID_IAudioLoudness
  • IID_IAudioMidrange
  • IID_IAudioMute
  • IID_IAudioOutputSelector
  • IID_IAudioPeakMeter
  • IID_IAudioTreble
  • IID_IAudioVolumeLevel
  • IID_IDeviceSpecificProperty
  • IID_IKsFormatSupport
  • IID_IKsJackDescription
Um die Schnittstellen-ID der funktionsspezifischen Steuerelementschnittstelle für ein Teil abzurufen, rufen Sie die IControlInterface::GetIID-Methode des Teils auf. Verwenden Sie den Operator __uuidof , um die Schnittstellen-ID eines funktionsspezifischen Steuerelementschnittstellentyps abzurufen. Die Schnittstellen-ID von IAudioAutoGainControl ist beispielsweise wie folgt definiert:

const IID IID_IAudioAutoGainControl  __uuidof(IAudioAutoGainControl)

Weitere Informationen zum __uuidof-Operator finden Sie in der Windows SDK-Dokumentation.

Bevor der Client seinen endgültigen Verweis auf die IControlChangeNotify-Schnittstelle veröffentlicht, sollte er die IPart::UnregisterControlChangeCallback-Methode aufrufen, um die Registrierung der Schnittstelle aufzuheben. Andernfalls gibt die Anwendung die Ressourcen aus, die von den IControlChangeNotify - und IPart-Objekten gehalten werden. Beachten Sie, dass RegisterControlChangeCallback die IControlChangeNotify::AddRef-Methode des Clients und UnregisterControlChangeCallback die IControlChangeNotify::Release-Methode aufruft. Wenn der Client einen Fehler verursacht, indem er seinen Verweis auf die IControlChangeNotify-Schnittstelle vor dem Aufruf von UnregisterControlChangeCallback freigibt, gibt das IPart-Objekt niemals seinen Verweis auf die IControlChangeNotify-Schnittstelle frei. Beispielsweise könnte eine schlecht entworfene IControlChangeNotify-ImplementierungUnregisterControlChangeCallback aus dem Destruktor für das IControlChangeNotify-Objekt aufrufen. In diesem Fall ruft der Client UnregisterControlChangeCallback erst auf, wenn das IPart-Objekt seinen Verweis auf die IControlChangeNotify-Schnittstelle freigibt, und das IPart-Objekt gibt seinen Verweis auf die IControlChangeNotify-Schnittstelle erst frei, wenn der Client UnregisterControlChangeCallback aufruft. Weitere Informationen zu den Methoden AddRef und Release finden Sie in der Erläuterung der IUnknown-Schnittstelle in der Windows SDK-Dokumentation.

Anforderungen

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

Weitere Informationen

IControlChangeNotify-Schnittstelle

IControlInterface::GetIID

IPart-Schnittstelle

IPart::UnregisterControlChangeCallback