HRESULT       hResult;
IWebBrowser2* pWebBrowser = NULL;
char          strUrl[] = "www.csdn.net";
::_variant_t varUrl;
if (FAILED(OleInitialize(NULL)))
return -1;
if (FAILED(hResult = CoCreateInstance(CLSID_InternetExplorer, NULL,CLSCTX_SERVER, IID_IWebBrowser2,(LPVOID*)&pWebBrowser)))
{
OleUninitialize();
return -1;
}pWebBrowser->put_Visible(VARIANT_TRUE);
varUrl = (char*)strUrl;
pWebBrowser->Navigate2(&varUrl, NULL, NULL, NULL, NULL);if (pWebBrowser)
pWebBrowser->Release();OleUninitialize();打开的IE浏览器却没有显示www.csdn.net的网页(什么都没有显示),如果把Navigate2()此句替换为GoHome()却可以显示Home指定的网页,清高手指点。

解决方案 »

  1.   

    原因在这句:
    varUrl = (char*)strUrl;将
    varUrl = (char*)strUrl;
    pWebBrowser->Navigate2(&varUrl, NULL, NULL, NULL, NULL);
    替换成:
    CComVariant varUrl(strUrl);
    CComVariant vtEmpty;
    pWebBrowser->Navigate2(&varUrl, &vtEmpty, &vtEmpty, &vtEmpty, &vtEmpty);try...
      

  2.   

    要使用CComVariant的话应该包含哪些头文件?(我的编译器老是说error C2065: 'CComVariant' : undeclared identifier)
      

  3.   

    //you can use BSTR,such as   BSTR bstrURL = SysAllocString(L"http://www.csdn.net");
       HRESULT hr = pIWebBrowser2->Navigate(bstrURL, &flags, &frameName,
    &postData, &headers);
      

  4.   

    flags,frameName,postData,headers是怎么定义的?
      

  5.   

    you can set NULL all.
      

  6.   

    问题解决,方法如下:
    HRESULT       hResult;
    IWebBrowser2* pWebBrowser = NULL;if (FAILED(OleInitialize(NULL)))
    return;if (FAILED(hResult = CoCreateInstance(CLSID_InternetExplorer, NULL,
    CLSCTX_SERVER, IID_IWebBrowser2,(LPVOID*)&pWebBrowser)))
    {
    OleUninitialize();
    return;
    }pWebBrowser->put_Visible(VARIANT_TRUE);
    //pWebBrowser->put_Offline(VARIANT_FALSE);
    VARIANT varURL,varEmpty;
    ::VariantInit(&varURL);
    ::VariantInit(&varEmpty);
    varURL.vt=VT_BSTR;
    varURL.bstrVal=SysAllocString(m_url.AllocSysString());
    varEmpty.vt=VT_EMPTY;
    pWebBrowser->Navigate2(&varURL,&varEmpty,&varEmpty,&varEmpty,&varEmpty);if (pWebBrowser)
    pWebBrowser->Release();
    OleUninitialize();