楼上的,*Cancel从哪来的?Invoke没有Cancel啊。
STDMETHODIMP CIEWebGuard::Invoke(DISPID dispidMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS* pDispParams,VARIANT* pvarResult,                               EXCEPINFO*  pExcepInfo, UINT* puArgErr)

解决方案 »

  1.   

    DWebBrowserEvents2::BeforeNavigate2 Event
    Syntaxvoid BeforeNavigate2(          IDispatch *pDisp,
        VARIANT *&url,
        VARIANT *&Flags,
        VARIANT *&TargetFrameName,
        VARIANT *&PostData,
        VARIANT *&Headers,
        VARIANT_BOOL *&Cancel
    );
    第六个参数
      

  2.   

    怎么在DISPID_BEFORENAVIGATE2消息里使用BeforeNavigate2事件?
    :(
      

  3.   

    case DISPID_BEFORENAVIGATE2:
    {
        CComBSTR url = ((*pDispParams).rgvarg)[5].pvarVal->bstrVal;
        if (url == "http://www.adatum.com" || url == "http://www.adatum.com/")
        {
            CComPtr<IWebBrowser2> spBrowser;
            CComPtr<IDispatch> spDisp = ((*pDispParams).rgvarg)[6].pdispVal;
            spDisp->QueryInterface(IID_IWebBrowser2, (void**)&spBrowser);
            spBrowser->Stop();
            CComBSTR newURL = "L"res://webhost.exe/nonavigate.htm";
            spBrowser->Navigate(newURL, NULL, NULL, NULL, NULL);
            ((*pDispParams).rgvarg)[0].boolVal = TRUE;
        }
        break;
    }
      

  4.   

    goodboyws:能不能把IE窗口关闭了?我不需要链接到别的网址