バックグラウンド:
IWebBrowser2 を作成し、URL に移動しています。これはコードの短いバージョンです:
IWebBrowser2* pWebBrowser = NULL;
hr = ::CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void **)&pWebBrowser);
hr = pWebBrowser->Navigate(bstrURL, &varFlags, &varEmptyStr, &varEmptyStr, &varEmptyStr);
hr = pWebBrowser->put_Visible(VARIANT_TRUE);
// Get the handle of the IE window
HWND handle = NULL;
hr = pWebBrowser->get_HWND((long*)&handle); // this could be done better with reinterpret_cast
…
問題:
get_HWND の呼び出しが 0x80004005 エラー コードで失敗することがあります。一部のワークステーションでのみ失敗します。
質問:
- get_HWND の呼び出しがランダムに失敗するのはなぜですか?
- get_HWND の使用は正しく行われていますか? 予想されるタイプは SHANDLE_PTR です。
役に立つかもしれないいくつかのリンク:
http://msdn.microsoft.com/en-us/library/aa752126%28v=vs.85%29.aspx http://codecentrix.blogspot.com/2007/11/when-iwebbrowser2gethwnd-returns-efail.html
追加情報が必要ですか? 私に知らせて
ありがとうございました!