IDispatch* FindElement( REFIID riid, IDispatch* pDispBrowser )
{
HRESULT hr;
IHTMLDocument2* pHTMLDocument2;
hr= pDispBrowser->QueryInterface( IID_IHTMLDocument2, (void**)&pHTMLDocument2 );
if (hr != S_OK) return 0;
IHTMLElementCollection* pColl;
hr= pHTMLDocument2->get_all( &pColl );
if (hr != S_OK) return 0;
LONG celem;
hr = pColl->get_length( &celem );
if (hr != S_OK) return 0;
for ( int i=0; i< celem; i++ ) {
COleVariant varIndex( (long)i );
COleVariant var2;
IDispatch* pDisp;
hr = pColl->item( varIndex, var2, &pDisp );
if ( hr != S_OK ) {
return 0;
}
IHTMLElement* pElem;
//---------- see if this one is of the requested type...
hr = pDisp->QueryInterface( riid, (void **)&pElem );
if ( hr == S_OK ) { // YES!
pDisp->Release();
return( pElem );
}
pDisp->Release();
}
return(0);
}
==========================================
실제로쓰기
CWebBrowser2* pBrowser= (CWebBrowser2*)GetDlgItem( IDC_PREVIEW_IKEA );
IHTMLFrameBase* pFrameSetElem= (IHTMLFrameBase*)FindElement(
IID_IHTMLFrameBase, pBrowser->GetDocument()
);
'개발지식창고 > ActiveX' 카테고리의 다른 글
다이얼로그 베이스에서 ATL 변수사용하기 (0) | 2010.10.19 |
---|---|
웹브라우저 내에서의 TAB,ENTER 안먹히는부분 (0) | 2010.10.13 |
익스플로러 현재 모든 url 가져오기 (0) | 2010.09.08 |
ActiveX 자동 업데이트 하는 방법 (0) | 2010.08.24 |
IWebBrowser2 로 웹페이지 생성시 단축키 먹히는 방법 (0) | 2010.08.22 |