VS2010 C# IE8 BHO代码是网上能找到的代码,要实现拦截并取消某些特定地址的功能。可以成功触发和截获DocumentComplete事件,但NewWindow3、BeforeNavigate2等事件却没有触发。        public int SetSite(object site)
        {
            if (site != null)
            {
                oWebBrowser = (SHDocVw.WebBrowser)site;
                if (oWebBrowser != null)
                {
                    oWebBrowser.NewWindow3 += new DWebBrowserEvents2_NewWindow3EventHandler(oWebBrowser_NewWindow3);
                    oWebBrowser.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(oWebBrowser_DocumentComplete);
                    oWebBrowser.BeforeNavigate2 += new DWebBrowserEvents2_BeforeNavigate2EventHandler(oWebBrowser_BeforeNavigate2);
                }
            }
            else
            {
                if (oWebBrowser != null)
                {
                    oWebBrowser.NewWindow3 -= new DWebBrowserEvents2_NewWindow3EventHandler(oWebBrowser_NewWindow3);
                    oWebBrowser.DocumentComplete -= new DWebBrowserEvents2_DocumentCompleteEventHandler(oWebBrowser_DocumentComplete);
                    oWebBrowser.BeforeNavigate2 -= new DWebBrowserEvents2_BeforeNavigate2EventHandler(oWebBrowser_BeforeNavigate2);
                    oWebBrowser = null;
                }
            }请教原因。