![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
||||||
| 如何得到网页中所有内嵌框架的ihtmldocument2接口 | ||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-7-1 ![]() |
||||||
|
如何得到网页中所有内嵌框架的IHTMLDocument2接口
IHTMLDocument2有个方法:HRESULT get_frames(IHTMLFramesCollection2 **p) 原来我以为通过该方法可以得到网页内嵌框架的IHTMLDocument2接口,但试过不行! 后来找到一种方法,即通过IOleContainer接口的EnumObjects方法。
void EnumFrame( IHTMLDocment2 *pHTML ) { CComQIPtr<IOleContainer> spContainer( pHTML ); if( spContainer ) { CComPtr<IEnumUnknown> spEnumerator;
// 注:参数OLECONTF_EMBEDDINGS // 表示列举容器内的所有嵌入对象
HRESULT hr = spContainer->EnumObjects( OLECONTF_EMBEDDINGS, &spEnumerator); if( spEnumerator ) { CComPtr<IUnknown> spUnk; ULONG uFetched; while (spEnumerator->Next(1, &spUnk, &uFetched) == S_OK) { CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> spWB(spUnk); if ( spWB ) { ASSERT( spWB != m_spWebBrowser2 ) ; CComPtr<IDispatch> spDocDisp; hr = spWB->get_Document(&spDocDisp); CComQIPtr<IHTMLDocument2> spHTML (spDocDisp) ; if( spHTML ) { EnumFrame( spHTML ); }}}}}
|
||||||
| 文章录入:admin 责任编辑:admin | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|