IHTMLFramesCollection2 如何遍历集合中每人frame的name?

jpinglove 2012-02-15 10:05:20
我使用

HRESULT hr=pDoc->get_frames(&pFramesCollection);

得到了页面的所有 frame的集合.
现在我想通过frame 的name属性,找到我想要处理的那个frame.
可是现在不能得到它的name.



hr=pFramesCollection->get_length(&p); // 得到集合的数量
if(SUCCEEDED(hr))
{
for(int i=0; i<p; i++) //遍历集合
{
varindex.lVal = i;
if(pFramesCollection->item(&varindex, &varresult) ==S_OK)
{
lpDispatch=(LPDISPATCH)varresult.ppdispVal; // 得到了 frame的Dispatch

CComQIPtr< IHTMLFrameElement > pFrameEle;
CComQIPtr< IHTMLFrameBase > pFrameBase;

// 下面这句失败,返回 E_NOINTERFACE
hr = lpDispatch->QueryInterface( IID_IHTMLFrameElement , (LPVOID*)&pFrameEle );
// 下面这句还是失败, 还是返回 E_NOINTERFACE
hr = lpDispatch->QueryInterface( IID_IHTMLFrameBase , (LPVOID*)&pFrameBase );
// 我想通过 IHTMLFrameBase 的 get_name 函数得到Frame的name属性,好判断是不是我想要处理的那个框架.请问我要怎么做才行.

}
}
}




我想通过 IHTMLFrameBase 的 get_name 函数得到Frame的name属性,好判断是不是我想要处理的那个框架.请问我要怎么做才行.
...全文
534 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jpinglove 2012-02-16
  • 打赏
  • 举报
回复
太感谢 ,给分结贴.
我就剩20分了.
不好意思了!
fishion 2012-02-16
  • 打赏
  • 举报
回复
varresult.pdispVal
fishion 2012-02-16
  • 打赏
  • 举报
回复
	VARIANT varindex,varresult;
VariantInit(&varindex);
VariantInit(&varresult);
varindex.vt = VT_I4;
IDispatch *pDispatch;
hr=pFramesCollection->get_length(&p); // 得到集合的数量
if(SUCCEEDED(hr))
{
for(int i=0; i<p; i++) //遍历集合
{
varindex.lVal = i;
if(pFramesCollection->item(&varindex, &varresult) ==S_OK)
{
pDispatch=varresult.pdispVal; // 得到了 frame的Dispatch

CComQIPtr< IHTMLFrameElement > spFrameEle(pDispatch);
if(!spFrameEle) return;
CComQIPtr< IHTMLFrameBase > spFrameBase(pDispatch);
if(!spFrameBase) return;

// 我想通过 IHTMLFrameBase 的 get_name 函数得到Frame的name属性,好判断是不是我想要处理的那个框架.请问我要怎么做才行.

}
}
}

看看行不行了

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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