동일한 스레드에서 HtmlHelp 함수를 호출한 후 CoInitializeEx 함수가 실패함

  • 아티클
  • 2023. 04. 20.
  •  

이 문서의 내용

  1. 증상
  2. 원인
  3. 해결 방법

이 문서에서는 동일한 스레드에서 함수를 호출한 후 CoInitializeEx 함수 가 실패하는 HtmlHelp 문제를 설명합니다.

적용 대상: 지원되는 모든 운영 체제

증상

애플리케이션이 지정된 값을 사용하여 를 호출하기 전에 를 호출 HtmlHelpCoInitializeEx 하는 경우 를 COINIT_MULTITHREADEDCoInitializeEx 반환 RPC_E_CHANGED_MODE (0x80010106)할 수 있습니다. 결과적으로 애플리케이션이 충돌하거나 중단되거나 예기치 않은 동작이 표시될 수 있습니다.

원인

를 호출 HtmlHelp 하는 스레드가 또는 CoInitializeExHtmlHelp 을 사용하여 CoInitialize 초기화되지 않은 경우 를 사용하여 스레드를 아파트 스레드COINIT_APARTMENTTHREADED로 초기화합니다.

해결 방법

문제를 해결하고 단일 스레드에서 COM 초기화의 충돌을 방지하려면 새 스레드를 만들고 해당 스레드에서 를 호출 HtmlHelp 합니다.


Posted by gurupia
,