internal void OnUIActivate(AxHost site) { if (this.siteUIActive != site) { if ((this.siteUIActive != null) && (this.siteUIActive != site)) { AxHost siteUIActive = this.siteUIActive; bool axState = siteUIActive.GetAxState(AxHost.ownDisposing); try { siteUIActive.SetAxState(AxHost.ownDisposing, true); siteUIActive.GetInPlaceObject().UIDeactivate(); } finally { siteUIActive.SetAxState(AxHost.ownDisposing, axState); } } site.AddSelectionHandler(); this.siteUIActive = site; ContainerControl containingControl = site.ContainingControl; if (containingControl != null) { containingControl.ActiveControl = site; } } }
/// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> internal void OnUIActivate(AxHost site) { // The ShDocVw control repeatedly calls OnUIActivate() with the same // site. This causes the assert below to fire. // if (siteUIActive == site) return; if (siteUIActive != null && siteUIActive != site) { AxHost tempSite = siteUIActive; bool ownDisposing = tempSite.GetAxState(AxHost.ownDisposing); try { tempSite.SetAxState(AxHost.ownDisposing, true); tempSite.GetInPlaceObject().UIDeactivate(); } finally { tempSite.SetAxState(AxHost.ownDisposing, ownDisposing); } } site.AddSelectionHandler(); Debug.Assert(siteUIActive == null, "Object did not call OnUIDeactivate"); Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "active Object is now "+site.ToString()); siteUIActive = site; ContainerControl f = site.ContainingControl; Debug.Assert(f != null, "a control has to be on a ContainerControl..."); if (f != null) { f.ActiveControl = site; } }