IPart::RegisterControlChangeCallback 方法 (devicetopology.h)
RegisterControlChangeCallback 方法會註冊 IControlChangeNotify 介面,用戶端會實作此介面,以接收此部分的狀態變更通知。
語法
HRESULT RegisterControlChangeCallback(
[in] REFGUID riid,
[in] IControlChangeNotify *pNotify
);
參數
[in] riid
要監視控件變更的函式特定控制項介面。 如需詳細資訊,請參閱<備註>。
[in] pNotify
用戶端 IControlChangeNotify 介面的指標。 如果方法成功,它會在用戶端的 IControlChangeNotify 介面上呼叫 AddRef 方法。
傳回值
如果方法成功,它會傳回 S_OK。 如果失敗,可能的傳回碼包括,但不限於下表所示的值。
傳回碼 | Description |
---|---|
|
參數 riid 不是有效的控制介面識別碼。 |
|
指標 pNotify 為 NULL。 |
備註
將參數 riid 設定為下列其中一個 GUID 值:
- 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
const IID IID_IAudioAutoGainControl __uuidof(IAudioAutoGainControl)
如需 __uuidof 運算符的詳細資訊,請參閱 Windows SDK 檔。
在客戶端釋放 IControlChangeNotify 介面的最終參考之前,它應該呼叫 IPart::UnregisterControlChangeCallback 方法來取消註冊介面。 否則,應用程式會洩漏 IControlChangeNotify 和 IPart 物件所持有的資源。 請注意, RegisterControlChangeCallback 會呼叫用戶端的 IControlChangeNotify::AddRef 方法,而 UnregisterControlChangeCallback 會呼叫 IControlChangeNotify::Release 方法。 如果在呼叫 UnregisterControlChangeCallback 之前釋放對 IControlChangeNotify 介面的參考,則 IPart 對象永遠不會釋放對 IControlChangeNotify 介面的參考。 例如,設計不佳的 IControlChangeNotify 實作可能會從 IControlChangeNotify 物件的解構函式呼叫 UnregisterControlChangeCallback。 在此情況下,用戶端不會呼叫 UnregisterControlChangeCallback ,直到 IPart 對象釋放對 IControlChangeNotify 介面的參考, 而 IPart 物件將不會釋放其 IControlChangeNotify 介面的參考,直到用戶端呼叫 UnregisterControlChangeCallback 為止。 如需 AddRef 和 Release 方法的詳細資訊,請參閱 Windows SDK 檔中的 IUnknown 介面討論。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | devicetopology.h |