Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Burn failed to initialize COM at EngineRun(). #4778
CoInitializeEx returns 0x80010106 - Cannot change thread mode after it is set.
This happened when I have installed Lingoes 2.9.1(http://www.lingoes.net/) and run it in the back.
When the bundle starts, it will load a dll from Lingoes.(C:\Users\Administrator\AppData\Local\Lingoes\Translator\lingoes-us\OpenText32.dll)
It looks like OpenText32.dll will call CoInitializeEx using a different thread mode before bundle's EngineRun().
When using the debug version of burn.exe, the generated bundle will crash because "ExitOnFailure(hr, "Failed to initialize COM.");" try to use the LogStringWork() before LogInitialize().
When using the release version of burn.exe, it won't crash.
I searched CoInitializeEx on msdn and it says,
There is certainly something Lingoes is doing wrong, but maybe we should still make sure the bundle will behavior good under such environment .
This is not quite about the crash thing. The release version won't crash.
The problem is whether "CoInitializeEx returns 0x80010106" is an ignorable situation or an error.
If it is an ignorable situation, then this issue could be just ignored too.
If it is an error, then maybe something could be done to mitigate the pain. It may be difficult to convince the user to uninstall those bad apps.