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 |