ObjectControl::Activate 方法 (comsvcs.h)
啟用 COM+ 物件,以在啟用時執行內容特定的初始化。
在物件上呼叫任何其他方法之前,COM+ 運行時間環境會呼叫這個方法。
Syntax
HRESULT Activate();
傳回值
這個方法可以傳回標準傳回值E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL和S_OK。
備註
每當用戶端呼叫尚未使用中的 COM+ 物件時,COM+ 執行時間環境會自動啟動物件。 這稱為 Just-In-Time Activation。 對於支援 ObjectControl 作為介面的元件,COM+ 會先叫用物件的 Activate 方法,再將用戶端的方法呼叫傳遞至 物件。
對於公開 ObjectControl 的物件,應在 Activate 方法中實作任何內容特定的初始化程式。
例如,您可以使用 Activate 方法來取得物件的內容的參考,並將它儲存在成員變數中。 然後對象內容可供任何需要它的方法使用,而且您不需要每次想要使用它時取得新的對象內容。 取得對象內容的參考之後,您可以使用 ObjectContext 方法來檢查是否已啟用安全性、物件是在交易中執行,還是呼叫端是否在特定角色中執行。
如果您要藉由實作 CanBePooled 方法來查詢物件) 來啟用物件回收 (,Activate 方法必須能夠處理新建立的物件以及回收的物件。 當 Activate 方法傳回時,新物件與回收對象之間不應該有區別的差異。
COM+ 明確禁止呼叫物件,在呼叫 Activate 方法 (在其建構函式) 之前,先公開 ObjectControl 的物件。 這類呼叫會導致RPC_E_DISCONNECTED錯誤。 例如,如果物件在建構函式中傳回本身的參考,然後參考會在呼叫 Activate 之前回呼該物件,則會傳回中斷連線的錯誤。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | comsvcs.h |