coUninitialize 函数 (combaseapi.h)

关闭当前线程上的 COM 库,卸载线程加载的所有 DLL,释放线程维护的任何其他资源,并强制关闭线程上的所有 RPC 连接。

语法

void CoUninitialize();

返回值

备注

对于每次成功调用 CoInitialize 或 CoInitializeEx 函数(包括任何返回S_FALSE的调用),线程必须调用 CoUninitialize 一次。 只有与初始化库的 CoInitialize 或 CoInitializeEx 调用对应的 CoUninitialize 调用可以关闭它。

OleInitialize 的 调用必须通过对 OleUninitialize 的调用来平衡。 OleUninitialize 函数在内部调用 CoUninitialize,因此调用 OleUninitialize 的应用程序不需要调用 CoUninitialize

CoUninitialize 应在应用程序关闭时调用,因为应用程序隐藏其main窗口并通过其main消息循环之后对 COM 库进行的最后一次调用。 如果仍然存在打开的会话, CoUninitialize 将启动模式消息循环,并为此 COM 应用程序调度容器或服务器中的任何挂起消息。 通过调度消息, CoUninitialize 可确保应用程序在接收其所有挂起的消息之前不会退出。 非 COM 消息将被丢弃。

由于无法控制加载或卸载进程内服务器的顺序,因此请勿从 DllMain 函数调用 CoInitializeCoInitializeExCoUninitialize

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 combaseapi.h (包括 Objbase.h)
Library Ole32.lib
DLL Ole32.dll

另请参阅

CoInitialize

CoInitializeEx

OleUninitialize