共用方式為


ObjectControl::D eactivate 方法 (comsvcs.h)

可讓 COM+ 物件在回收或終結之前執行必要的清除。

每當停用物件時,COM+ 執行時間環境就會呼叫此方法。 請勿從此方法對相同活動中的物件進行任何方法呼叫。

Syntax

HRESULT Deactivate();

傳回值

這個方法可以傳回標準傳回值E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL和S_OK。

備註

每當支援 ObjectControl 介面的物件停用時,COM+ 運行時間環境就會呼叫 Deactivate 方法。 當物件從名為 SetCompleteSetAbort 的方法傳回時,當它執行的交易已認可或中止時,或是最後一個用戶端在物件上保存其參考時,就會停用該物件。

如果元件支援回收 (從 CanBePooled 方法傳回 TRUE) ,您必須使用 Deactivate 方法,將物件的狀態重設為 Activate 方法預期找到它的狀態。 您也可以使用 Deactivate 方法來釋放物件的內容,或執行其他內容特定的清除。 即使物件支援回收,在 停用 方法中釋放某些可重複使用的資源也很有説明。 例如,ODBC 會提供自己的連線共用。 將資料庫連接集區集在一般連接集區中更有效率,其中其他物件可以使用它,而不是將它系結至物件集區中的特定物件。

COM+ 明確禁止呼叫物件,在 Deactivate 方法傳回 (在解構函式) 之後公開 ObjectControl。 這類呼叫會導致RPC_E_DISCONNECTED錯誤。 例如,如果物件已傳回本身的參考,然後在 停用 傳回之後回呼物件,則會造成中斷連線的錯誤結果。

規格需求

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

另請參閱

ObjectControl