Site icon EfmSoft

Что означает код HRESULT 0x80004012 (CO_E_INIT_ONLY_SINGLE_THREADED)?

 
Предыдущий Следующий
CO_E_INIT_SCM_EXEC_FAILURE CO_E_CANT_REMOTE

CO_E_INIT_ONLY_SINGLE_THREADED

Что означает результат

CO_E_INIT_ONLY_SINGLE_THREADED: Поток уже прошёл инициализацию COM в режиме, несовместимом с новой попыткой однопоточной инициализации. Apartment model выбирается для потока при первой успешной инициализации и не должен произвольно меняться позже.

Что проверить

  • Запишите первый CoInitialize/CoInitializeEx на этом thread и переданный COINIT.
  • Проверьте библиотеки, которые могут неявно инициализировать COM раньше вашего кода.
  • Не путайте разные потоки: каждый поток имеет собственную COM initialization state.
  • Проверьте баланс успешных CoInitializeEx и CoUninitialize, но не вызывайте CoUninitialize за чужую инициализацию.

Диагностика и исправление

Выберите один совместимый apartment model для данного потока или перенесите работу в отдельный поток с нужной моделью. Повторная инициализация тем же несовместимым режимом состояние не меняет.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version