如何获取IWebBrowser2的实例

时间:2016-11-04 00:05:17

标签: c++ windows com ole

我对C ++有点新意,请保持温和。

我正在尝试自动化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 interfaceCoCreateInstance的文档。

1 个答案:

答案 0 :(得分:2)

在使用COM对象之前,您需要调用?order=5

此外,您需要使用?order=6来分配字符串。

示例:

CoInitialize()