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 函数调用 CoInitialize、CoInitializeEx 或 CoUninitialize。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | combaseapi.h (包括 Objbase.h) |
Library | Ole32.lib |
DLL | Ole32.dll |