IE 控件IWebBrowser2->navigate2方法在shellwindows下面的问题

pxk 2006-01-28 02:05:58
我用ShellWindows获得了已经打开的IE的IWebBrowser2接口,调用IWebBrowser2->GoHome是有用的,但是调用IWebBrowser2->navigate2没反应。刚刚开始学习COM,请高手帮我看看吧,下面是代码:



#include "stdafx.h"
#include "afxdisp.h"
#include "mshtml.h"

int _tmain(int argc, _TCHAR* argv[])
{
::CoInitialize(NULL);

IShellWindows* m_spSHWinds;
::CoCreateInstance( CLSID_ShellWindows,NULL,CLSCTX_INPROC_SERVER,IID_IShellWindows,(LPVOID*)&m_spSHWinds);
long nCount;
m_spSHWinds->get_Count(&nCount);

for (long i = 0; i < nCount; i++)
{
VARIANT va;
va.vt = VT_I4;
va.lVal = i;
IDispatch* spDisp;
m_spSHWinds->Item(va,&spDisp);

IWebBrowser2* spBrowser;
spDisp->QueryInterface(IID_IWebBrowser2,(void**)&spBrowser);
if (spBrowser != NULL)
{
IHTMLDocument2* spDoc;
IDispatch* IDispDoc;
spBrowser->get_Document(&IDispDoc);
IDispDoc->QueryInterface(IID_IHTMLDocument2,(void**)&spDoc);

if (spDoc != NULL)
{
VARIANT VaUrl;
VaUrl.vt = VT_BSTR;
VaUrl.bstrVal = ::SysAllocString(_T("http://www.csdn.net/"));

VARIANT VaFlags;
VaFlags.vt = VT_I4;
VaFlags.intVal = navOpenInNewWindow;

VARIANT VaTargetFrameName;
VaTargetFrameName.vt = VT_BSTR;
VaTargetFrameName.bstrVal = ::SysAllocString(_T("_BLANK"));

spBrowser->Navigate2( &VaUrl, &VaFlags, &VaTargetFrameName, NULL, NULL);
puts("#");

::SysFreeString(VaUrl.bstrVal);
::SysFreeString(VaTargetFrameName.bstrVal);
}
}
}

::CoUninitialize();
return 0;
}
...全文
552 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2006-02-05
  • 打赏
  • 举报
回复
http://www.codeproject.com/shell/AutomateShellWindow.asp
wildmen 2006-02-04
  • 打赏
  • 举报
回复
先打上记号,回来再看.

3,245

社区成员

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

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