私はC++に少し慣れています。優しくしてください。IWebBrowser2のインスタンスを取得する方法
私はInternet Explorerを自動化しようとしています。私は、ローカルサーバを使ってIEのインスタンスを作成しようとしている単純なWin32コンソールアプリケーションを持っています。
しかし、CoCreateInstance()
を呼び出すと、変数IWebBrowser2
を初期化するオブジェクトが返されません。
私は何かが紛失しているのを見るためにいくつかの助けをすることができました。私も何HRESULT
リターンをデコードする方法を確認していない
HRESULT InstanciateIEResult;
HRESULT NavigateResult;
HRESULT ShowBrowserResult;
VARIANT * empty = new VARIANT();
BSTR URL = L"bing.com";
IWebBrowser2* pBrowser2;
InstanciateIEResult = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2, (void**)&pBrowser2);
if(pBrowser2)
{
//never reach here
NavigateResult = pBrowser2->Navigate(URL, empty, empty, empty, empty);
ShowBrowserResult = pBrowser2->put_Visible(VARIANT_TRUE);
}
:
は、ここに私のコードです。もしあなたが知っていれば、それも役に立つでしょう。
私はIWebBrowser2 interfaceとCoCreateInstanceのドキュメントを見ていました。
たぶん、あなたは ''のCoInitialize(NULL)を呼び出していませんでした。関連するすべてのコードを表示します。ビットとピースは表示しません。 –
ありがとうございました。私はその呼び出しをしなかったし、それは動作しませんでした。それを答えに変えることができれば、私はあなたに信用を与えるでしょう。 –
'CoCreateInstance()'の戻り値を見ていれば、 'CO_E_NOTINITIALIZED'(" CoInitializeは呼び出されていません ")という' 0x800401F0'を返していたことになります。戻り値を無視しないでください! –