我利用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;
}