我利用IEHelper接口,做了一个拦截广告的程序。我主要是利用了invoke方法,在有些机器上,可以成功的截获,DISPID_NEWWINDOW2,DISPID_DOWNLOADBEGIN消息,但有些机器截获不到,请大侠指点,有可能是什么原因,谢谢,赐教。STDMETHODIMP CIEHlprObj::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags,
DISPPARAMS* pDispParams, VARIANT* pvarResult,
EXCEPINFO* pExcepInfo, UINT* puArgErr)
{
USES_CONVERSION;
if (!pDispParams)
return E_INVALIDARG;
//
// Get the current URL
//
LPOLESTR lpURL = NULL;
m_spWebBrowser2->get_LocationURL(&lpURL);
switch (dispidMember)
{
//
// The parameters for this DISPID are as follows:
// [0]: Cancel flag - VT_BYREF|VT_BOOL
// [1]: HTTP headers - VT_BYREF|VT_VARIANT
// [2]: Address of HTTP POST data - VT_BYREF|VT_VARIANT
// [3]: Target frame name - VT_BYREF|VT_VARIANT
// [4]: Option flags - VT_BYREF|VT_VARIANT
// [5]: URL to navigate to - VT_BYREF|VT_VARIANT
// [6]: An object that evaluates to the top-level or frame
// WebBrowser object corresponding to the event.
//250
case DISPID_BEFORENAVIGATE2:
break;
case DISPID_NAVIGATECOMPLETE2:
break; case DISPID_DOCUMENTCOMPLETE:
break;
case DISPID_DOWNLOADBEGIN:
break;
case DISPID_DOWNLOADCOMPLETE:
break;
case DISPID_NEWWINDOW2:
//设置是否允许弹出窗口
case DISPID_QUIT:
break;
default:
break;
}
return S_OK;
}
DISPPARAMS* pDispParams, VARIANT* pvarResult,
EXCEPINFO* pExcepInfo, UINT* puArgErr)
{
USES_CONVERSION;
if (!pDispParams)
return E_INVALIDARG;
//
// Get the current URL
//
LPOLESTR lpURL = NULL;
m_spWebBrowser2->get_LocationURL(&lpURL);
switch (dispidMember)
{
//
// The parameters for this DISPID are as follows:
// [0]: Cancel flag - VT_BYREF|VT_BOOL
// [1]: HTTP headers - VT_BYREF|VT_VARIANT
// [2]: Address of HTTP POST data - VT_BYREF|VT_VARIANT
// [3]: Target frame name - VT_BYREF|VT_VARIANT
// [4]: Option flags - VT_BYREF|VT_VARIANT
// [5]: URL to navigate to - VT_BYREF|VT_VARIANT
// [6]: An object that evaluates to the top-level or frame
// WebBrowser object corresponding to the event.
//250
case DISPID_BEFORENAVIGATE2:
break;
case DISPID_NAVIGATECOMPLETE2:
break; case DISPID_DOCUMENTCOMPLETE:
break;
case DISPID_DOWNLOADBEGIN:
break;
case DISPID_DOWNLOADCOMPLETE:
break;
case DISPID_NEWWINDOW2:
//设置是否允许弹出窗口
case DISPID_QUIT:
break;
default:
break;
}
return S_OK;
}
解决方案 »
- sf
- 类似EXCEL加入VBA功能
- 大家看看这段代码 问题出在那里
- 如何让comboBox框disable后,其中的字体变成了灰色,如何显示为黑色?
- 我的dll中的引用参数CString为什么使用的时候出错?
- 用realplayer的Activex控件做rm播放器,如何实现全屏播放?
- 请问将word文档转换成为pdf文档需要什么工具,该怎么做?
- 怎样将一个字符串或CStirng的"1010"转换成对应的二进制的1010的值(也就是整数10)???
- 高分救命:哪位大哥帮我写下线段与正方体的求交算法啊!!
- 如何接受对话框类的最大,最小化按钮消息?
- MDI的FRAME问题
- Html网页是框架结构,如何得到某指定Frame的窗口?
有没有打开第三方浏览器扩展