public void CreateDocument() { Debug.Assert(m_document == null, "Must call Close before recreating."); Boolean created = false; try { m_document = (IOleObject) new mshtml.HTMLDocument(); int iRetval = ComSupport.OleRun(m_document); m_document.SetClientSite(this); // Lock the object in memory iRetval = ComSupport.OleLockRunning(m_document, true, false); m_document.SetHostNames("HtmlEditor", "HtmlEditor"); m_document.Advise(this, out iAdviseCookie); created = true; } finally { if (created == false) { m_document = null; } } }
public void CreateDocument() { Debug.Assert(m_document == null, "Must call Close before recreating."); Boolean created = false; try { m_document = (IOleObject) new HTMLDocument(); int iRetval; iRetval = win32.OleRun(m_document); iRetval = m_document.SetClientSite(this); Debug.Assert(iRetval == HRESULT.S_OK, "SetClientSite failed"); // Lock the object in memory iRetval = win32.OleLockRunning(m_document, true, false); m_document.SetHostNames("HtmlEditor", "HtmlEditor"); m_document.Advise(this, out iAdviseCookie); //hook up HTMLDocumentEvents2 Guid guid = new Guid("3050f613-98b5-11cf-bb82-00aa00bdce0b"); IConnectionPointContainer icpc = (IConnectionPointContainer)m_document; icpc.FindConnectionPoint(ref guid, out icp); icp.Advise(this, out iEventsCookie); created = true; } finally { if (created == false) { m_document = null; } } }
/// <summary> /// Create Webbrowser control and set up it's events /// called from OnHandleCreated /// Webbrowser control hosting requires an HWND /// </summary> /// <returns></returns> private void InternalCreateWB() { //Create a new WB, throws exception if fails Type webbrowsertype = Type.GetTypeFromCLSID(Iid_Clsids.CLSID_WebBrowser, true); //Using Activator inplace of CoCreateInstance, returns IUnknown m_WBUnknown = System.Activator.CreateInstance(webbrowsertype); //Get the IOleObject m_WBOleObject = (IOleObject)m_WBUnknown; //Set client site int iret = m_WBOleObject.SetClientSite(this); //Set hostnames iret = m_WBOleObject.SetHostNames("csEXWB", string.Empty); //Get client rect bool brect = WinApis.GetClientRect(this.Handle, out m_WBRect); //Setup H+W m_WBRect.Right = m_WBRect.Right - m_WBRect.Left; //W m_WBRect.Bottom = m_WBRect.Bottom - m_WBRect.Top; //H m_WBRect.Left = 0; m_WBRect.Top = 0; //Get the IOleInPlaceObject m_WBOleInPlaceObject = (IOleInPlaceObject)m_WBUnknown; tagRECT trect = new tagRECT(); WinApis.CopyRect(ref trect, ref m_WBRect); //Set WB rects iret = m_WBOleInPlaceObject.SetObjectRects(ref m_WBRect, ref trect); //INPLACEACTIVATE the WB iret = m_WBOleObject.DoVerb((int)OLEDOVERB.OLEIVERB_INPLACEACTIVATE, ref m_NullMsg, this, 0, this.Handle, ref m_WBRect); //Get the IWebBrowser2 m_WBWebBrowser2 = (IWebBrowser2)m_WBUnknown; //By default, we handle dragdrops m_WBWebBrowser2.RegisterAsDropTarget = false; if (!DesignMode) { //Get connectionpointcontainer IConnectionPointContainer cpCont = (IConnectionPointContainer)m_WBUnknown; //Find connection point Guid guid = typeof(DWebBrowserEvents2).GUID; IConnectionPoint m_WBConnectionPoint = null; cpCont.FindConnectionPoint(ref guid, out m_WBConnectionPoint); //Advice m_WBConnectionPoint.Advise(this, out m_dwCookie); //Get the IOleComandTarget m_WBOleCommandTarget = (IOleCommandTarget)m_WBUnknown; //Reguster clipborad format for internal drag drop //RegisterClipboardFormatsForDragDrop(); } if (!string.IsNullOrEmpty(m_sUrl)) this.Navigate(m_sUrl); else this.Navigate("about:blank"); //Get the shell embedding, ... WBIEServerHandle(); }
public void CreateDocument() { Debug.Assert(m_document == null, "Must call Close before recreating."); Boolean created = false; try { m_document = (IOleObject)new HTMLDocument(); int iRetval; iRetval = win32.OleRun(m_document); iRetval = m_document.SetClientSite(this); Debug.Assert(iRetval == HRESULT.S_OK, "SetClientSite failed"); // Lock the object in memory iRetval = win32.OleLockRunning(m_document, true, false); m_document.SetHostNames("HtmlEditor", "HtmlEditor"); m_document.Advise(this, out iAdviseCookie); //hook up HTMLDocumentEvents2 Guid guid = new Guid("3050f613-98b5-11cf-bb82-00aa00bdce0b"); IConnectionPointContainer icpc = (IConnectionPointContainer)m_document; icpc.FindConnectionPoint(ref guid, out icp); icp.Advise(this, out iEventsCookie); created = true; } finally { if (created == false) m_document = null; } }