CoUninitialize 函式 (combaseapi.h)

關閉目前線程上的 COM 連結庫、卸除線程所載入的所有 DLL、釋放線程維護的任何其他資源,並強制線程上的所有 RPC 連線關閉。

Syntax

void CoUninitialize();

傳回值

無

備註

線程必須針對對 CoInitialize 或 CoInitializeEx 函式進行的每個成功呼叫呼叫一次,包括傳回S_FALSE的任何呼叫。 只有對應至 CoInitialize 或 CoInitializeEx 呼叫的 CoUninitialize 呼叫,才能將連結庫初始化。

對 OleInitialize 的呼叫必須透過 對 OleUninitialize 的呼叫進行平衡。 OleUninitialize 函式會在內部呼叫 CoUninitialize,因此呼叫 OleUninitialize 的應用程式不需要呼叫 CoUninitialize。

CoUninitialize 應該在應用程式關機時呼叫,因為應用程式隱藏主視窗並落在主要訊息循環之後,對 COM 連結庫進行的最後一次呼叫。 如果有剩餘的開啟交談, CoUninitialize 會啟動強制回應訊息迴圈,並從此 COM 應用程式的容器或伺服器分派任何擱置的訊息。 藉由分派訊息, CoUninitialize 可確保應用程式不會在接收所有擱置的訊息之前結束。 系統會捨棄非 COM 訊息。

因為無法控制載入或卸除同進程伺服器的順序,所以請勿從 DllMain 函式呼叫 CoInitialize、CoInitializeEx 或 CoUninitialize。

規格需求

需求 值
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 combaseapi.h (包含 Objbase.h)
程式庫 Ole32.lib
Dll Ole32.dll

另請參閱

CoInitialize

CoInitializeEx

OleUninitialize