SDK+ATL动态创建WebBrowser遇见的问题

yusheng628 2013-03-08 08:56:46
OleInitialize(0);
CoInitialize(0);
CComPtr<IWebBrowser2> m_spWebBrowser;
CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_INPROC, IID_IWebBrowser2, (void**)&m_spWebBrowser);
HRESULT hr=m_spWebBrowser->Navigate2(&CComVariant(L"http://www.baidu.com"),NULL,NULL,NULL,NULL);
if (FAILED(hr))
{
MessageBox(0,L"Failed",0,0);
}


我是这样调用的,但弹出Failed对话框
如何解决呢?初学COM
我不想创建一个窗体来显示Webbrowser,那么,该如何做?
...全文
135 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishion 2013-03-09
  • 打赏
  • 举报
回复
当然要初始化variantinit
fishion 2013-03-09
  • 打赏
  • 举报
回复
除了第一个参数 其他参数用一个新声明的variant填入
czhjacky 2013-03-09
  • 打赏
  • 举报
回复
学习了,看了下,多谢
Dobzhansky 2013-03-09
  • 打赏
  • 举报
回复
ole control 需要宿主窗口才行, 如果你只是想不用界面, 就获取网页, 然后只 mshtml dom, 可以使用自定义 site 的方式来用 mshtml 获取网页, 自己创建一个 client site 实现. 微软有这样的一个例子, 无界面, 禁用脚本. 去 http://www.microsoft.com/en-us/download/details.aspx?id=944 下载 WalkAll 看看就知道了.
yusheng628 2013-03-09
  • 打赏
  • 举报
回复
引用 3 楼 Dobzhansky 的回复:
ole control 需要宿主窗口才行, 如果你只是想不用界面, 就获取网页, 然后只 mshtml dom, 可以使用自定义 site 的方式来用 mshtml 获取网页, 自己创建一个 client site 实现. 微软有这样的一个例子, 无界面, 禁用脚本. 去 http://www.microsoft.com/en-us/download/d……
非常感谢,我去看了下,我需要打开的网页有ActiveX控件,用WalkAll不知道如何才能加载ActiveX呢? 另外您提到的创建ClientSite,能否给个例子呢? 初学,555
yusheng628 2013-03-08
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
查看错误信息hr,分析具体原因
哎返回E_FAIL 可有丝毫帮助?
oyljerry 2013-03-08
  • 打赏
  • 举报
回复
查看错误信息hr,分析具体原因

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧