CoInitializeEx 関数が同じスレッドで HtmlHelp 関数を呼び出した後に失敗する
この記事では、同じスレッドで HtmlHelp
関数を呼び出した後に CoInitializeEx 関数が失敗する問題について説明します。
適用対象: サポートされているすべてのオペレーティング システム
現象
アプリケーションが COINIT_MULTITHREADED
の値を指定して CoInitializeEx
を呼び出す前に HtmlHelp
を呼び出すと、CoInitializeEx
は RPC_E_CHANGED_MODE (0x80010106)
を返す場合があります。 その結果、アプリケーションがクラッシュしたり、ハングしたり、予期しない動作が表示されたりする可能性があります。
原因
HtmlHelp
を呼び出すスレッドが CoInitialize
または CoInitializeEx
で初期化されていない場合、HtmlHelp
はスレッドを COINIT_APARTMENTTHREADED
でアパートメント スレッドとして初期化します。
回避策
この問題を回避し、1 つのスレッドで COM の初期化の競合を回避するには、新しいスレッドを作成し、そのスレッドで HtmlHelp
を呼び出します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示