public JsVal ConvertCOMObjectToJSVal(IntPtr globalObject, nsISupports thisObject) { var writableVariant = Xpcom.CreateInstance2 <nsIWritableVariant>(Contracts.WritableVariant); writableVariant.Instance.SetAsISupports(thisObject); return(Xpcom.XPConnect.Instance.VariantToJS(_cx, globalObject, writableVariant.Instance)); }
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); }
public void SetData(string data) { using (var stringInputStream = Xpcom.CreateInstance2 <nsIStringInputStream>(Contracts.StringInputStream)) { stringInputStream.Instance.SetData(data, data.Length); _inputStream.Instance.SetData(stringInputStream.Instance); } }
private nsIDOMXPathResult EvaluateXPathInternal(string xpath) { var evaluator = Xpcom.CreateInstance2 <nsIDOMXPathEvaluator>(Contracts.XPathEvaluator); nsIDOMNode node = DomObject; nsIDOMXPathNSResolver resolver = evaluator.Instance.CreateNSResolver(node); nsIDOMXPathResult result = ( nsIDOMXPathResult )evaluator.Instance.Evaluate(new nsAString(xpath), node, resolver, 0, null); return(result); }
private nsIXPathResult EvaluateXPathInternal(string xpath) { nsIXPathResult result; using (var evaluator = Xpcom.CreateInstance2 <nsIDOMXPathEvaluator>(Contracts.XPathEvaluator)) { var node = DomObject; var resolver = new WebIDL.XPathEvaluator(this.OwnerDocument.DefaultView.DomWindow, (nsISupports)this.OwnerDocument.DomObject) .CreateNSResolver(node); result = (nsIXPathResult)evaluator.Instance.Evaluate(new nsAString(xpath), node, resolver, 0, null); } return(result); }
internal byte[] DrawWindow(nsIDOMWindow window, uint x, uint y, uint w, uint h) { Xpcom.AssertCorrectThread(); Init(); SetValue("x", x); SetValue("y", y); SetValue("w", w); SetValue("h", h); using (var data = Xpcom.CreateInstance2 <nsIWritableVariant>("@mozilla.org/variant;1")) { data.Instance.SetAsISupports((nsISupports)window); using (var key = new nsAString("window")) { object comObj = command.Instance.SetUserData(key, data.Instance, null); Xpcom.FreeComObject(ref comObj); command.Instance.DoCommand(); comObj = command.Instance.SetUserData(key, null, null); Xpcom.FreeComObject(ref comObj); } } string base64Image = null; using (var key = new nsAString("drawResult")) { using (var drawResult = command.Instance.SetUserData(key, null, null).AsComPtr()) { if (drawResult != null) { base64Image = drawResult.Instance.GetAsWString(); } } } if (base64Image == null) { throw new InvalidOperationException(); } if (!base64Image.StartsWith("data:image/png;base64,")) { throw new InvalidOperationException(base64Image); } byte[] bytes = Convert.FromBase64String(base64Image.Substring("data:image/png;base64,".Length)); return(bytes); }
private void SetValue(string name, nsISupports value) { if (name == null) { throw new ArgumentNullException("name"); } using (var data = Xpcom.CreateInstance2 <nsIWritableVariant>("@mozilla.org/variant;1")) { data.Instance.SetAsISupports(value); using (var key = new nsAString(name)) { object comObj = command.Instance.SetUserData(key, data.Instance, null); Xpcom.FreeComObject(ref comObj); } } }
public Pipe() { _pipe = Xpcom.CreateInstance2 <nsIPipe>(Contracts.Pipe); _pipe.Instance.Init(true, true, 0, 0); }
public Sound() { _sound = Xpcom.CreateInstance2 <nsISound>(Contracts.Sound); _sound.Instance.Init(); }
public GeckoMIMEInputStream() { _inputStream = Xpcom.CreateInstance2 <nsIMIMEInputStream>(Contracts.MimeInputStream); }