网址拦截和弹出窗口的屏蔽

STDMETHODIMP CIEPlugCom::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pvarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
 USES_CONVERSION;
 
 if(!pDispParams)
  return E_INVALIDARG;
 
 LPOLESTR lpURL=NULL;
 m_spWebBrowser2->get_LocationURL(&lpURL); 
 switch(dispidMember)
 {
 case DISPID_BEFORENAVIGATE2:
  char *pURL;
  if(pDispParams->cArgs >=5&&pDispParams->rgvarg[5].vt==(VT_BYREF|VT_VARIANT))
  {
            CComVariant varURL(*pDispParams->rgvarg[5].pvarVal);
            varURL.ChangeType(VT_BSTR);
   //转化要访问的网址为char *型
   pURL=OLE2A(varURL.bstrVal);
  }
  //如果正要访问的网址为要被拦截的,则停止  
  //IDS_URL
  if(strstr(pURL,"microsoft.com")!=NULL)
  {
            *pDispParams->rgvarg[0].pboolVal=TRUE;
      MessageBox(NULL,"当前系统禁止浏览该页","警告",MB_ICONSTOP);
   return S_OK;
  }
  break;
 case DISPID_NAVIGATECOMPLETE2:
  break;
 case DISPID_DOCUMENTCOMPLETE:
  break;
 case DISPID_DOWNLOADBEGIN:
  break;
 case DISPID_DOWNLOADCOMPLETE:
  break;
 case DISPID_NEWWINDOW2:
  READYSTATE m_ReadyState;
        m_spWebBrowser2->get_ReadyState(&m_ReadyState);
        if(m_ReadyState!=READYSTATE_COMPLETE)
        {
            *pDispParams->rgvarg[0].pboolVal=TRUE;
            return S_OK;
        }
  else
  {
            *pDispParams->rgvarg[0].pboolVal=FALSE;
            return S_OK;
  }
     break;
 case DISPID_QUIT:
  break;
 default:
  break;
 }
 return S_OK;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值