void GeckoWebBrowser_Loaded(object sender, System.Windows.RoutedEventArgs e) { Xpcom.Initialize(); _webBrowser = Xpcom.CreateInstance2 <nsIWebBrowser>(Contracts.WebBrowser); _webBrowserFocus = (nsIWebBrowserFocus)_webBrowser.Instance; _baseWindow = (nsIBaseWindow)_webBrowser.Instance; _webNav = (nsIWebNavigation)_webBrowser.Instance; _webBrowser.Instance.SetContainerWindowAttribute(this); _baseWindow.InitWindow(Handle, IntPtr.Zero, 0, 0, (int)(ActualWidth * DpiX / 96), (int)(ActualHeight * DpiY / 96)); _baseWindow.Create(); #region nsIWebProgressListener/nsIWebProgressListener2 Guid nsIWebProgressListenerGUID = typeof(nsIWebProgressListener).GUID; Guid nsIWebProgressListener2GUID = typeof(nsIWebProgressListener2).GUID; _webProgressWeakReference = _webProgressListener.GetWeakReference(); _webBrowser.Instance.AddWebBrowserListener(_webProgressWeakReference, ref nsIWebProgressListenerGUID); _webBrowser.Instance.AddWebBrowserListener(_webProgressWeakReference, ref nsIWebProgressListener2GUID); _webProgressListener.OnStateChangeCallback += this.OnStateChange; #endregion _baseWindow.SetVisibilityAttribute(true); }
protected override void DestroyWindowCore(HandleRef hwnd) { #region nsIWebProgressListener/nsIWebProgressListener2 _webProgressListener.IsListening = false; Guid nsIWebProgressListenerGUID = typeof(nsIWebProgressListener).GUID; Guid nsIWebProgressListener2GUID = typeof(nsIWebProgressListener2).GUID; _webBrowser.Instance.RemoveWebBrowserListener(_webProgressWeakReference, ref nsIWebProgressListenerGUID); _webBrowser.Instance.RemoveWebBrowserListener(_webProgressWeakReference, ref nsIWebProgressListener2GUID); _webProgressWeakReference = null; _webProgressListener = null; #endregion //_webNav.Stop( ); _webBrowser.FinalRelease(); _webBrowser.Dispose(); _webBrowser = null; _source.Dispose(); }
public static nsIWeakReference GetProxy(Mono.WebBrowser.IWebBrowser control, nsIWeakReference obj) { object o = Base.GetProxyForObject(control, typeof(nsIWeakReference).GUID, obj); return(o as nsIWeakReference); }
public static nsIWeakReference GetProxy (Mono.WebBrowser.IWebBrowser control, nsIWeakReference obj) { object o = Base.GetProxyForObject (control, typeof(nsIWeakReference).GUID, obj); return o as nsIWeakReference; }