Функция CoUninitialize (combaseapi.h)
Закрывает библиотеку COM в текущем потоке, выгружает все библиотеки DLL, загруженные потоком, освобождает все другие ресурсы, которые поддерживает поток, и принудительно закрывает все подключения RPC в потоке.
Синтаксис
void CoUninitialize();
Возвращаемое значение
None
Remarks
Поток должен вызывать CoUninitialize один раз для каждого успешного вызова функции CoInitialize или CoInitializeEx , включая любой вызов, возвращающий S_FALSE. Закрыть его может только вызов CoUninitialize , соответствующий вызову CoInitialize или CoInitializeEx , который инициализировал библиотеку.
Вызовы OleInitialize должны быть сбалансированы вызовами OleUninitialize. Функция OleUninitialize вызывает CoUninitialize внутренне, поэтому приложениям, вызывающим OleUninitialize , также не нужно вызывать CoUninitialize.
CoUninitialize следует вызывать при завершении работы приложения, так как последний вызов библиотеки COM после того, как приложение скрывает свои окна main и проходит через цикл сообщений main. Если остаются открытые беседы, CoUninitialize запускает модальный цикл сообщений и отправляет все ожидающие сообщения из контейнеров или сервера для этого приложения COM. Отправляя сообщения, CoUninitialize гарантирует, что приложение не завершит работу перед получением всех ожидающих сообщений. Сообщения, отличные от COM, удаляются.
Так как нет способа управлять порядком загрузки или выгрузки внутрипроцессных серверов, не вызывайте CoInitialize, CoInitializeEx или CoUninitialize из функции DllMain .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | combaseapi.h (включая Objbase.h) |
Библиотека | Ole32.lib |
DLL | Ole32.dll |