IBindCtx::RegisterObjectBound 方法 (objidl.h)

向系結內容註冊物件,以確保對象在釋放系結內容之前保持作用中。

語法

HRESULT RegisterObjectBound(
  [in] IUnknown *punk
);

參數

[in] punk

要註冊為系結的物件上 IUnknown 介面的指標。

傳回值

這個方法可以傳回標準傳回值E_OUTOFMEMORY和S_OK。

備註

撰寫新的Moniker類別 (透過 IMoniker 介面的實作) 每當實作啟動物件時,應該呼叫此方法。 這最常發生在系結Moniker的過程中,但也可以在擷取Moniker的顯示名稱、將顯示名稱剖析成Moniker,或擷取上次修改物件的時間時發生。

RegisterObjectBound 會呼叫 AddRef 來建立物件的其他參考。 不過,您仍必須釋放自己的指標複本。 針對相同的物件呼叫這個方法兩次,會建立該物件的兩個參考。 您可以藉由呼叫 IBindCtx::RevokeObjectBound,釋放透過呼叫此方法取得的參考。 系結內容所保留的所有參考都會在系結內容本身釋放時釋放。

呼叫 RegisterObjectBound 以向系結內容註冊物件,讓物件保持作用中,直到系結內容釋放為止。 在後續系結作業中重複使用系結內容 (相同複合Moniker的另一個片段,或針對不同的Moniker) ,可以讓後續的系結作業更有效率,因為它不需要重載該物件。 不過,只有在後續的系結作業需要與原始物件相同的一些物件時,才能改善效能,因此您必須平衡重複使用系結內容的可能效能改善,以避免不必要地啟用物件的成本。

IBindCtx 不提供方法來擷取使用 RegisterObjectBound 註冊之物件的指標。 假設對象已經向執行中的對象數據表註冊本身,Moniker 實作可以呼叫 IRunningObjectTable::GetObject 來擷取物件的指標。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 objidl.h

另請參閱

IBindCtx

IRunningObjectTable::GetObject