トップ回答者
CreateInstanceで0x800401f0のエラーが発生する

質問
-
こんにちは、
CreateInstanceのエラーについての質問です。
Visual Studio 2013 VC++でアプリケーションを作成しており、アプリケーションからIEを起動しています。
void NewIE(int i, char *telno)
====
{
SHDocVw::IWebBrowser2Ptr pIE;
char telno_p[128];
//IEの起動
HRESULT hr = pIE.CreateInstance(__uuidof(SHDocVw::InternetExplorer));:
=====
通常、CreateInstanceは、問題なく実行されるのですが、あるイベントを受け取ったときにCallback関数から
上記関数を実行すると以下のエラーとなり、IEを起動できません。=====
NewIE# CreateInstance error: 800401f0
=====となってしまいます。
回避方法あるいは回避するための情報をお持ちでないでしょうか?
よろしくお願いいたします。
回答
-
エラー番号 0x800401f0 は、CO_E_NOTINITIALIZED ですね。
もしかして、コールバックというのは、別スレッド上で動いていたりしませんか?もしそうであれば、そのスレッドの起動直後に、CoInitialize() あるいは、CoInitializeEx() を呼び出すことで解決できると思います。
とっちゃん@わんくま同盟, Microsoft MVP for Visual C++ (Oct 2005-) http://blogs.wankuma.com/tocchann/
すべての返信
-
エラー番号 0x800401f0 は、CO_E_NOTINITIALIZED ですね。
もしかして、コールバックというのは、別スレッド上で動いていたりしませんか?もしそうであれば、そのスレッドの起動直後に、CoInitialize() あるいは、CoInitializeEx() を呼び出すことで解決できると思います。
とっちゃん@わんくま同盟, Microsoft MVP for Visual C++ (Oct 2005-) http://blogs.wankuma.com/tocchann/