共用方式為


IPart::UnregisterControlChangeCallback 方法 (devicetopology.h)

UnregisterControlChangeCallback 方法會移除用戶端先前透過呼叫 IPart::RegisterControlChangeCallback 方法註冊的 IControlChangeNotify 介面註冊。

語法

HRESULT UnregisterControlChangeCallback(
  [in] IControlChangeNotify *pNotify
);

參數

[in] pNotify

要刪除註冊的 IControlChangeNotify 介面指標。 用戶端在先前呼叫 IPart::RegisterControlChangeCallback 方法時,將這個相同的介面指標傳遞給 part 物件。 如果 UnregisterControlChangeCallback 方法成功,它會在用戶端的 IControlChangeNotify 介面上呼叫 Release 方法。

傳回值

如果方法成功,它會傳回 S_OK。 如果失敗,可能的傳回碼包括但不限於下表所示的值。

傳回碼 Description
E_INVALIDARG
指標 pNotifyNULL
E_NOTFOUND
介面實例 *pNotify 目前尚未註冊。

備註

在用戶端發行其 IControlChangeNotify 介面的最終參考之前,它應該呼叫 UnregisterControlChangeCallback 來取消註冊介面。 否則,應用程式會流失 IControlChangeNotifyIPart 物件所持有的資源。 請注意, IPart::RegisterControlChangeCallback 方法會呼叫用戶端的 IControlChangeNotify::AddRef 方法,而 UnregisterControlChangeCallback 會呼叫 IControlChangeNotify::Release 方法。 如果在呼叫 UnregisterControlChangeCallback 之前釋放對 IControlChangeNotify 介面的參考,則 IPart 物件永遠不會釋放其 IControlChangeNotify 介面的參考。 例如,設計不佳的 IControlChangeNotify 實作可能會從 IControlChangeNotify 物件的解構函式呼叫 UnregisterControlChangeCallback。 在此情況下,除非 IPart 物件釋放對 IControlChangeNotify 介面的參考,否則用戶端不會呼叫 UnregisterControlChangeCallback,而 IPart 物件將不會釋放其 IControlChangeNotify 介面的參考,直到用戶端呼叫 UnregisterControlChangeCallback 為止。 如需 AddRefRelease 方法的詳細資訊,請參閱 Windows SDK 檔中 的 IUnknown 介面討論。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 devicetopology.h

另請參閱

IControlChangeNotify 介面

IPart 介面

IPart::RegisterControlChangeCallback