Функция CoIncrementMTAUsage (combaseapi.h)
Поддержка MTA остается активной, если потоки MTA не запущены.
Синтаксис
HRESULT CoIncrementMTAUsage(
[out] CO_MTA_USAGE_COOKIE *pCookie
);
Параметры
[out] pCookie
Адрес переменной PVOID , которая получает файл cookie для функции CoDecrementMTAUsage , или ЗНАЧЕНИЕ NULL в случае сбоя вызова.
Возвращаемое значение
Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Функция CoIncrementMTAUsage позволяет клиентам создавать рабочие роли MTA и ждать их завершения перед выходом из процесса.
Функция CoIncrementMTAUsage гарантирует, что система не освобождает ресурсы, связанные с поддержкой MTA, даже если число потоков MTA равно 0.
При успешном выполнении вызовите CoDecrementMTAUsage только один раз. При сбое не вызывайте функцию CoDecrementMTAUsage .
Не вызывайте CoIncrementMTAUsage во время завершения процесса или внутри dllmain. Вы можете вызвать CoIncrementMTAUsage перед вызовом, чтобы начать процесс завершения работы.
Вы можете вызывать CoIncrementMTAUsage из одного потока и CoDecrementMTAUsage из другого, если файл cookie, ранее возвращенный CoIncrementMTAUsage , передается в CoDecrementMTAUsage.
CoIncrementMTAUsage создает MTA, если MTA еще не существует. CoIncrementMTAUsage помещает текущий поток в MTA, если текущий поток еще не находится в объекте
CoIncrementMTAUsage можно использовать в:
- Вы хотите, чтобы сервер сохранял MTA в активном состоянии, даже если все рабочие потоки простаивают.
- Реализация API требует инициализации COM, но не содержит сведений о том, находится ли текущий поток уже в отдельном объекте, и не требуется ли текущий поток для перехода в определенное подразделение.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | combaseapi.h |
Библиотека | Ole32.lib |
DLL | Ole32.dll |