如何得到网页中所有内嵌框架的IHTMLDocument2接口

王朝vc·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

如何得到网页中所有内嵌框架的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 );

}}}}}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航