我对C++有点新鲜,请温柔一点。如何获取IWebBrowser2的实例
我试图自动化Internet Explorer。我有一个简单的Win32控制台应用程序,我尝试使用本地服务器创建一个IE实例。
但是,我致电CoCreateInstance()
不返回一个对象来初始化我的IWebBrowser2
变量。
我可以使用一些帮助,看看我失踪。
这里是我的代码:
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);
}
我也不知道如何什么解码HRESULT
回报。如果你知道,那也会有帮助。
我在看文档IWebBrowser2 interface和CoCreateInstance。
也许你没叫'CoInitialize的(NULL)'。显示所有相关的代码,而不是零碎。 –
谢谢,这使它工作。我没有打过电话,但没有成功。如果你能把它变成答案,我会给你信用。 –
你看过'CoCreateInstance()'的返回值,你会看到它返回'0x800401F0',又名'CO_E_NOTINITIALIZED'(“CoInitialize has not been called”)。不要忽略返回值! –