如题,我写了一个BHO程序,
在SetSite函数里面获得页面的IWebBrowser2指针,
然后在Invoke函数里响应IE的事件,
我只在DISPID_DOCUMENTCOMPLETE里添加了代码,
弹出一个对话框,显示页面的插件信息,
当我打开一个页面里只有两个插件的网页时,
显示插件信息的对话框却是不停的弹出来,
反反复复都是那两个插件的信息,调试的时候只显示两个,
运行的时候就是不停显示,至少显示五六次吧,
我想知道这是怎么回事?
我只想显示一次,大家给看看,
SetSite函数的代码如下:
STDMETHODIMP CPlu::SetSite(IUnknown *pUnkSite)
{
USES_CONVERSION;
if (pUnkSite)
{
mWebBrowser2 = pUnkSite;
if (mWebBrowser2)
{
return RegisterEventHandler(TRUE);
}
}
return E_FAIL;
}
在SetSite函数里面获得页面的IWebBrowser2指针,
然后在Invoke函数里响应IE的事件,
我只在DISPID_DOCUMENTCOMPLETE里添加了代码,
弹出一个对话框,显示页面的插件信息,
当我打开一个页面里只有两个插件的网页时,
显示插件信息的对话框却是不停的弹出来,
反反复复都是那两个插件的信息,调试的时候只显示两个,
运行的时候就是不停显示,至少显示五六次吧,
我想知道这是怎么回事?
我只想显示一次,大家给看看,
SetSite函数的代码如下:
STDMETHODIMP CPlu::SetSite(IUnknown *pUnkSite)
{
USES_CONVERSION;
if (pUnkSite)
{
mWebBrowser2 = pUnkSite;
if (mWebBrowser2)
{
return RegisterEventHandler(TRUE);
}
}
return E_FAIL;
}
解决方案 »
- 为什么MFC中突然添加不了控件的消息函数
- 问一个VC++ 实现位图直线运动的问题
- 嵌入网页的控件不能自动升级,急!!!
- #include <valarray>
- 【LOOK!】本人一年多来上网收集的经典文章,给大家分享(内详...)
- 请教
- 请问一下如何在组件中访问数据库和使用MFC
- 贻笑大方的问题:在VC中,.h文件在里面到底起什么角色?在编译的时候只编译.cpp文件还是带.h文件?
- 探讨,鼠标双击应用程序主窗口标题栏,系统发送给应用程序主窗口的消息是什么?VC6里没有定义,VC6为什么不定义,我用debug跟踪原来是0XF122,在WinNt和Win2000里正确。
- 在用VC++6.0编写软件时,如何处理C1010报错?
- 有谁用过周立功的usbcan2吗?里面有个vc6.0的例子,我加了个确定按钮,想实现点击之后退出,但程序仍继续执行,怎么做到啊?
- 读取文件修改时间
CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> pDisp;
pDisp = pDispParams->rgvarg[1].pdispVal;
CComQIPtr<IUnknown, &IID_IUnknown> pUnkDisp;
pUnkDisp = pDisp;
CComQIPtr<IUnknown, &IID_IUnknown> pUnkBrowser;
pUnkBrowser = m_pWebBrowser2;//m_pWebBrowser2是SetSite中获得的接口
if(pUnkBrowser == pUnkDisp)
{
//整个页面加载完毕
}
else
{
//其它FRAME加载完毕
}