在DISPID_BEFORENAVIGATE2事件中如何判断是否为IFRAME事件?

_void 2006-12-12 01:27:37
如题!

我现在做的是在单个页面中是没问题的,但是如果一个页面中包含iframe,就会出现问题了,我想在DISPID_BEFORENAVIGATE2事件中判断如果是iframe就不进行任何操作,问题是不知道怎么做,GOOGLE了一下也没有结果.

期待大家的回复!


这个问题在
http://community.csdn.net/Expert/TopicView3.asp?id=4724150
中有解答,但我用还是有问题

问题是:
lion_wing(凤之焚) 的方法在DISPID_DOCUMENTCOMPLETE事件中是有效的
甚至可以简化成
if(m_pWebBrowser2 == pDispParams->rgvarg[1].pdispVal)
{//执行操作}
else
{//不执行}

但这个方法在DISPID_BEFORENAVIGATE2却无效
pDispParams->rgvarg[1].pdispVal得到的地址和m_pWebBrowser2不同~~

唉,真是不知道怎么回事~~

请高手来看看
好像lion_wing(凤之焚)现在也经常活跃在这里,麻烦你帮帮忙~~

万分感谢~~
...全文
457 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lion_wing 2006-12-12
  • 打赏
  • 举报
回复
我在OnBeforeNavigate2中,加载一个多FRAME的网页:
USES_CONVERSION;

CComVariant strUrl(*TargetFrameName);
strUrl.ChangeType(VT_BSTR);
MessageBox(OLE2T(strUrl.bstrVal));
结果都用空。
我再看看。。。
蒋晟 2006-12-12
  • 打赏
  • 举报
回复
you want get the target frame?

TargetFrameName
Stringexpression that evaluates to the name of the frame in which the resource will be displayed, or Null if no named frame is targeted for the resource.

If you need to find which frame is navigating, handle the first NavigateComplete event after the last DocumentComplete event
_void 2006-12-12
  • 打赏
  • 举报
回复
呵呵~~,我也试出来了

是第rgvarg[6].pdispVal个参数

谢谢大家~~

更简单点
if (pDispParams->cArgs >= 6 && pDispParams->rgvarg[6].vt == VT_DISPATCH) {
if(m_pWebBrowser2 == pDispParams->rgvarg[6].pdispVal)
{//执行操作}
else
{//不执行}
}
ezdevelop 2006-12-12
  • 打赏
  • 举报
回复
if (pDispParams->cArgs >= 6 && pDispParams->rgvarg[6].vt == VT_DISPATCH) {
pDispatch = &(*pDispParams->rgvarg[6].pdispVal);
CComQIPtr<IUnknown, &IID_IUnknown> pUnk1;
CComQIPtr<IUnknown, &IID_IUnknown> pUnk2;
HRESULT hr1 = m_pWebBrowser->QueryInterface(IID_IUnknown, (void**)&pUnk1);
HRESULT hr2 = pDispatch->QueryInterface(IID_IUnknown, (void**)&pUnk2);
if (pUnk1 != pUnk2) {
// 为iframe
return S_FALSE;
}
}

3,245

社区成员

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

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