Beispiel #1
0
        void wbEvents2_NewWindow2(ref object ppDisp, ref bool Cancel)
        {
            Window1 wnd = new Window1();

            wnd.Show();
            wnd.myWebBrowser.Navigate(new Uri("about:blank"));
            //wnd.myWebBrowser.Navigating += new System.Windows.Navigation.NavigatingCancelEventHandler(myWebBrowser_Navigating);

            Guid             SID_SWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
            IServiceProvider serviceProvider    = (IServiceProvider)wnd.myWebBrowser.Document;

            Guid serviceGuid = SID_SWebBrowserApp;

            Guid iid = typeof(SHDocVw.IWebBrowser2).GUID;

            SHDocVw.IWebBrowser2 myWebBrowser2 = (SHDocVw.IWebBrowser2)serviceProvider.QueryService(ref serviceGuid, ref iid);

            ppDisp = myWebBrowser2.Application;

            SHDocVw.DWebBrowserEvents2_Event wbEvents2 = (SHDocVw.DWebBrowserEvents2_Event)myWebBrowser2;
            wbEvents2.NewWindow2             += new SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(wbEvents2_NewWindow2);
            wbEvents2.NavigateError          += new SHDocVw.DWebBrowserEvents2_NavigateErrorEventHandler(wbEvents2_NavigateError);
            wbEvents2.RedirectXDomainBlocked += new SHDocVw.DWebBrowserEvents2_RedirectXDomainBlockedEventHandler(wbEvents2_RedirectXDomainBlocked);
            wbEvents2.ThirdPartyUrlBlocked   += new SHDocVw.DWebBrowserEvents2_ThirdPartyUrlBlockedEventHandler(wbEvents2_ThirdPartyUrlBlocked);
        }
Beispiel #2
0
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Guid             SID_SWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
            IServiceProvider serviceProvider    = (IServiceProvider)myWebBrowser.Document;

            Guid serviceGuid = SID_SWebBrowserApp;

            Guid iid = typeof(SHDocVw.IWebBrowser2).GUID;

            SHDocVw.IWebBrowser2             myWebBrowser2 = (SHDocVw.IWebBrowser2)serviceProvider.QueryService(ref serviceGuid, ref iid);
            SHDocVw.DWebBrowserEvents_Event  wbEvents      = (SHDocVw.DWebBrowserEvents_Event)myWebBrowser2;
            SHDocVw.DWebBrowserEvents2_Event wbEvents2     = (SHDocVw.DWebBrowserEvents2_Event)myWebBrowser2;
            wbEvents.NewWindow               += new SHDocVw.DWebBrowserEvents_NewWindowEventHandler(wbEvents_NewWindow);
            wbEvents2.NewWindow2             += new SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(wbEvents2_NewWindow2);
            wbEvents2.NavigateError          += new SHDocVw.DWebBrowserEvents2_NavigateErrorEventHandler(wbEvents2_NavigateError);
            wbEvents2.RedirectXDomainBlocked += new SHDocVw.DWebBrowserEvents2_RedirectXDomainBlockedEventHandler(wbEvents2_RedirectXDomainBlocked);
            wbEvents2.ThirdPartyUrlBlocked   += new SHDocVw.DWebBrowserEvents2_ThirdPartyUrlBlockedEventHandler(wbEvents2_ThirdPartyUrlBlocked);
        }
    public void HookForEvents( HookEventType[] delegateTypes )
    {
        _delegateTypes = delegateTypes;

        try
        {
            Guid ieServiceIdentifier = new Guid( "0002DF05-0000-0000-C000-000000000046" );
            Guid ieInterfaceIdentifier = typeof( SHDocVw.IWebBrowser2 ).GUID;

            IServiceProvider serviceProvider = (IServiceProvider) _wpfWebBrowser.Document;

            _webBrowser2 = (SHDocVw.IWebBrowser2) serviceProvider.QueryService( ref ieServiceIdentifier, ref ieInterfaceIdentifier );

            _webBrowserEvents = (SHDocVw.DWebBrowserEvents_Event) _webBrowser2;
            _webBrowserEvents2 = (SHDocVw.DWebBrowserEvents2_Event) _webBrowser2;
        }
        catch( Exception ex )
        {
            throw new WpfWebBrowserExtenderComBindException( String.Empty, ex );
        }

        Dictionary<HookEventType,HookForEventDelegate> 
            hookForEvent = new Dictionary<HookEventType, HookForEventDelegate>();
            hookForEvent.Add( HookEventType.DownloadBegin       , HookForEventDownloadBegin             );
            hookForEvent.Add( HookEventType.ProgressChange      , HookForEventPageLoadProgressUpdate    );
            hookForEvent.Add( HookEventType.DownloadComplete    , HookForEventDownloadComplete          );
            hookForEvent.Add( HookEventType.NavigateError       , HookForEventNavigateError             );
            hookForEvent.Add( HookEventType.NavigateComplete    , HookForEventNavigateComplete2         );
            hookForEvent.Add( HookEventType.NewWindow           , HookForEventNewWindow                 );
        
        foreach( HookEventType dt in _delegateTypes )
        {
            hookForEvent[ dt ]( _webBrowserEvents, _webBrowserEvents2 );
        }
    }