internal void OnInPlaceDeactivate(ActiveXBase <TActiveXClass, TActiveXInterface> site) { if (this.siteActive == site) { this.siteActive = null; ContainerControl containerControl = this.parent.FindContainerControlInternal(); if (containerControl != null) { ContainerControlShim.SetActiveControlInternal(containerControl, null); } } }
internal void OnUIActivate(ActiveXBase <TActiveXClass, TActiveXInterface> site) { if (this.siteUIActive != site) { if ((this.siteUIActive != null) && (this.siteUIActive != site)) { this.siteUIActive.activeXOleInPlaceObject.UIDeactivate(); } site.AddSelectionHandler(); this.siteUIActive = site; ContainerControl containerControl = site.ContainingControl; if ((containerControl != null) && containerControl.Contains(site)) { ContainerControlShim.SetActiveControlInternal(containerControl, site); } } }
private void ChangeActiveXStateDownTo(ActiveXHelper.ActiveXState state) { if (!this.GetActiveXHostState(ActiveXHelper.InTransition)) { this.SetActiveXHostState(ActiveXHelper.InTransition, true); try { while (state < this.activeXState) { switch (this.activeXState) { case ActiveXHelper.ActiveXState.Loaded: this.numberOfComponentChangeEvents++; try { if (this.activeXInstance != null) { this.DetachInterfacesInternal(); Marshal.FinalReleaseComObject(this.activeXInstance); this.activeXInstance = null; } } finally { this.numberOfComponentChangeEvents--; } this.activeXState = ActiveXHelper.ActiveXState.Passive; continue; case ActiveXHelper.ActiveXState.Running: this.StopEvents(); ActiveXContainer activeXContainer = this.GetParentContainer(); if (activeXContainer != null) { activeXContainer.RemoveControl(this); } this.activeXOleObject.SetClientSite(null); this.activeXState = ActiveXHelper.ActiveXState.Loaded; continue; case (ActiveXHelper.ActiveXState.Running | ActiveXHelper.ActiveXState.Loaded): break; case ActiveXHelper.ActiveXState.InPlaceActive: ContainerControl containingControl = this.ContainingControl; if ((containingControl != null) && (containingControl.ActiveControl == this)) { ContainerControlShim.SetActiveControlInternal(containingControl, null); } this.activeXOleInPlaceObject.InPlaceDeactivate(); this.activeXState = ActiveXHelper.ActiveXState.Running; continue; case ActiveXHelper.ActiveXState.UIActive: this.activeXOleInPlaceObject.UIDeactivate(); this.activeXState = ActiveXHelper.ActiveXState.InPlaceActive; continue; } this.activeXState -= ActiveXHelper.ActiveXState.Loaded; } } finally { this.SetActiveXHostState(ActiveXHelper.InTransition, false); } } }