public void ActivateDocument() { RECT rect = new RECT(); ComSupport.GetClientRect(container.Handle, rect); m_document.DoVerb(OLEIVERB.UIACTIVATE, IntPtr.Zero, this, 0, container.Handle, rect); }
public void ActivateDocument() { if (m_document == null) { return; } if (!container.Visible) { return; } RECT rect = new RECT(); win32.GetClientRect(container.Handle, rect); int iRetVal = m_document.DoVerb(OLEIVERB.UIACTIVATE, IntPtr.Zero, this, 0, container.Handle, rect); if (iRetVal == 0) { this.container.bNeedsActivation = false; } }
/// <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(); }