我用BHO插件,想用它获得浏览的页面的frame的个数怎么做??

hely_cn 2005-03-25 06:19:18
我用BHO插件,想用它获得浏览的页面的frame的个数怎么做??

CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc;
CComPtr<IDispatch> pDisp;
mWebBrowser2->get_Document(&pDisp);
pDoc = pDisp;
CComQIPtr<IHTMLFramesCollection2, &IID_IHTMLFramesCollection2> pIFrame(pDoc);
pIFrame->get_length(&FCount);

mWebBrowser2是我从setsite中取来的

STDMETHODIMP CIECon::SetSite(IUnknown *pUnkSite)
{
USES_CONVERSION;
//MessageBox(NULL,"hello hely",NULL,MB_OK);
if (pUnkSite)
{
mWebBrowser2 = pUnkSite;
if (mWebBrowser2)
{
return RegisterEventHandler(TRUE);
}
}

return E_FAIL;


}
可是在编译后运行ie的时候他报告调试断言错误!
...全文
165 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lion_wing 2005-03-28
  • 打赏
  • 举报
回复
用D7做过,刚用VC不太习惯!
不过思路和楼上一样的!
hely_cn 2005-03-28
  • 打赏
  • 举报
回复
大哥我是初始化成NULL了
但是我用m_mWebBrowser2 ->get_Document(&result);
有给他伏值了啊
蒋晟 2005-03-27
  • 打赏
  • 举报
回复
DocumentComplete事件处理中可以判断。每个框架下载完成都会触发这个事件,之后网页下载完成时也会触发这个事件。
文档对象模型在网页下载完成之后可用。
0011411 2005-03-26
  • 打赏
  • 举报
回复
CComPtr<IDispatch> result=NULL;
m_mWebBrowser2 ->get_Document(&result);

看看你初始化的时候就已经给值为NULL所以取的值是NULL,你的错啊!

hely_cn 2005-03-26
  • 打赏
  • 举报
回复
大哥我用了你给我的代码
我作了判断,为什么
m_mWebBrowser2 ->get_Document(&result);
得到的result是NULL?
etre 2005-03-26
  • 打赏
  • 举报
回复
try
{
if(m_mWebBrowser2 !=NULL)
{
CComPtr<IDispatch> result=NULL;
m_mWebBrowser2 ->get_Document(&result);
if(result!=NULL)
{
HRESULT hr;
CComPtr<IHTMLDocument2> pDocument = NULL;
hr = result->QueryInterface( IID_IHTMLDocument2, (void**)&pDocument);
if(SUCCEEDED(hr) && pDocument!=NULL)
{
CComPtr<IHTMLFramesCollection2> pFrames = NULL;
hr = pDocument->get_frames(&pFrames);
if(SUCCEEDED(hr) && pFrames!=NULL)
{
long frameCount=-1;
hr = pFrames->get_length(&frameCount);
if(SUCCEEDED(hr) && frameCount>1)
{
给你部分代码吧

3,245

社区成员

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

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