CoDisconnectObject 函式 (combaseapi.h)
中斷代表指向指定物件之所有介面指標維護的所有遠端進程連接。
只有實際管理對象的進程應該呼叫 CoDisconnectObject。
語法
HRESULT CoDisconnectObject(
[in] LPUNKNOWN pUnk,
[in] DWORD dwReserved
);
參數
[in] pUnk
要中斷連線之物件上任何衍生自 IUnknown 之介面的指標。
[in] dwReserved
此參數是保留的,而且必須是 0。
傳回值
此函式會傳回S_OK,指出已成功刪除所有遠端進程的連線。
備註
CoDisconnectObject 函式可讓伺服器正確地將所有外部用戶端與 pUnk 所指定的物件中斷連線。
其會執行下列工作:
- 檢查是否要中斷連線的物件會實作 IMarshal 介面。 如果是,它會取得該介面的指標;如果沒有,則會取得標準封送處理器 (的指標,也就是 COM 的 IMarshal 實作) 。
- 使用它取得的 IMarshal 介面指標,函式接著會呼叫 IMarshal::D isconnectObject ,以中斷所有跨進程用戶端的連線。
同樣地,支援其內嵌物件外部連結的 OLE 容器可以呼叫 CoDisconnectObject 來終結這些連結。 同樣地,此呼叫通常會回應關閉應用程式的使用者。 容器應該先針對其所有 OLE 物件呼叫 IOleObject::Close ,每個物件都應該將 IAdviseSink::OnClose 通知傳送給其各種用戶端。 然後容器可以呼叫 CoDisconnectObject 來關閉任何現有的連線。
CoDisconnectObject 不一定會立即中斷跨進程用戶端的連線。 如果伺服器物件上有任何封送處理呼叫擱置中, CoDisconnectObject 只會在這些呼叫傳回時中斷物件連線。 同時, CoDisconnectObject 會設定旗標,讓任何新的封送處理呼叫傳回CO_E_OBJNOTCONNECTED。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | combaseapi.h (包含 Objbase.h) |
程式庫 | Ole32.lib |
Dll | Ole32.dll |