IHTMLDocument2-3的一些小问题!

9hi 2018-05-23 09:59:24
https://bbs.csdn.net/topics/390796241
CComQIPtr<IHTMLDocument3> spDoc = GetHtmlDocument();
CComPtr<IHTMLElement> spElem;
CComQIPtr<IHTMLIFrameElement3> spIfeameElem;
CComQIPtr<IHTMLInputElement> spInputElem;
CComDispatchDriver spDispatch;
CComBSTR bstrValue;
spDoc->getElementById(CComBSTR(L"mainframe"), &spElem);
spDoc.Release();
spIfeameElem = spElem;
spElem.Release();
spIfeameElem->get_contentDocument(&spDispatch);
spDoc = spDispatch;
spDoc->getElementById(CComBSTR(L"mobileNo"), &spElem);
spInputElem = spElem;
spInputElem->get_value(&bstrValue);
MessageBox(bstrValue);
谁了解以上代码,我想再问下如果我们不知道任何的iframe名字,怎么去获取iframe名?
HRESULT hr = -1;
LPDISPATCH lpDisp = m_WebQ.get_Document();
CComQIPtr<IHTMLDocument2>spHtmlDoc2 = lpDisp;
// IHTMLElement *pHtmlEle;
IHTMLFramesCollection2 *pHtmlFrameColl2;
hr = spHtmlDoc2->get_frames(&pHtmlFrameColl2);
if (hr != S_OK)return;

long len = -1;
pHtmlFrameColl2->get_length(&len);
for (long i = 0; i < len; i++)
{
COleVariant varIndex, varRes;
hr = pHtmlFrameColl2->item(&varIndex, &varRes);
IHTMLWindow2 *pIHtmlWin2 = (IHTMLWindow2*)varRes.pdispVal;
BSTR bstrName;
pIHtmlWin2->get_name(&bstrName);
}
这是我个人通过许多坑才挖出来的些许头续,hr = pHtmlFrameColl2->item(&varIndex, &varRes);
俩个参数基本上什么也获取不到啊啊啊!求助.
...全文
800 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
9hi 2018-05-27
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
EnumObjects 枚举 https://blog.csdn.net/jiftlixu/article/details/5338706
谢谢
9hi 2018-05-27
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
EnumObjects 枚举 https://blog.csdn.net/jiftlixu/article/details/5338706
感谢!
Saleayas 2018-05-25
  • 打赏
  • 举报
回复
人家的 EnumObjects 好简单哦,收藏了。
Saleayas 2018-05-25
  • 打赏
  • 举报
回复
从 IHTMLDocument3::getElementsByTagName 枚举 FRAME 和 IFRAME 这两个框架获取 IHTMLElementCollection 集合。 获取每一个集合项 IHTMLFrameBase2。 使用 IHTMLFrameBase2::get_contentWindow 获取 IHTMLWindow2。 使用 IHTMLWindow2::get_document 获取 IHTMLDocument2。如果是跨 domain 失败的话,尝试获取 IID_IWebBrowserApp 的 IServiceProvider, 然后从 IServiceProvider 获取 IWebBrowser2 接口,使用 IWebBrowser2::get_Document 获取 IHTMLDocument2。 然后就递归了。
zgl7903 2018-05-24
  • 打赏
  • 举报
回复

3,245

社区成员

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

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