CoUninitialize 函式 (combaseapi.h)

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

Syntax

void CoUninitialize();

傳回值

備註

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

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

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

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

規格需求

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

另請參閱

CoInitialize

CoInitializeEx

OleUninitialize