IHTMLDocument2->get_frames()得到的是什么
对于分贞的HTML,IHTMLDocument2->get_frames()函数得到的IDispatch指针到底是什么?
IHTMLDocument2 *pDoc=NULL; pDoc=(IHTMLDocument2 *)GetHtmlDocument(); //这个是CHtmlView //IWebBrowser2使用get_Document(); IHTMLFramesCollection2 *pCol=NULL; HRESULT hr=pDoc->get_frames(&pCol); //取得分贞的frame数组 ASSERT(SUCCEEDED(hr)); VARIANT vFrame,vIndex; vIndex.vt=VT_I4; vIndex.lVal=0; //准备取得第0号贞 hr=pCol->get_item(&vIndex,&vFrame); ASSERT(SUCCEEDED(hr)); //取得的这个接口指针,其实是IHTMLWindow2的接口指针。 IHTMLWindow2 *pWin=(IHTMLWindow2 *)vFrame.pdispVal; IHTMLDocument2 *pDoc2=NULL; hr=pWin->get_document(&pDoc2); ASSERT(SUCCEEDED(hr)); BSTR bstr=NULL; hr=pDoc2->get_URL(&bstr); //举例,比如取得URL ASSERT(SUCCEEDED(hr)) SysFreeString(bstr); pDoc2->Release(); pWin->Release(); pCol->Release(); pDoc->Release();
http://blog.vckbase.com/teacheryang/archive/2005/01/06/2452.html