System.Windows.Interop.ActiveXHost.TransitionUpTo C# (CSharp) Méthode

TransitionUpTo() private méthode

private TransitionUpTo ( ActiveXHelper.ActiveXState state ) : void
state ActiveXHelper.ActiveXState
Résultat void
        internal void TransitionUpTo(ActiveXHelper.ActiveXState state)
        {
            if (!this.GetAxHostState(ActiveXHelper.inTransition))
            {
                this.SetAxHostState(ActiveXHelper.inTransition, true);

                try
                {
                    ActiveXHelper.ActiveXState oldState;

                    while (state > this.ActiveXState)
                    {
                        oldState = this.ActiveXState;

                        switch (this.ActiveXState)
                        {
                            case ActiveXHelper.ActiveXState.Passive:
                                TransitionFromPassiveToLoaded();
                                Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Loaded, "Failed transition");
                                this.ActiveXState = ActiveXHelper.ActiveXState.Loaded;
                                break;
                            case ActiveXHelper.ActiveXState.Loaded:
                                TransitionFromLoadedToRunning();
                                Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Running, "Failed transition");
                                this.ActiveXState = ActiveXHelper.ActiveXState.Running;
                                break;
                            case ActiveXHelper.ActiveXState.Running:
                                TransitionFromRunningToInPlaceActive();
                                Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive, "Failed transition");
                                this.ActiveXState = ActiveXHelper.ActiveXState.InPlaceActive;
                                break;
                            case ActiveXHelper.ActiveXState.InPlaceActive:
                                TransitionFromInPlaceActiveToUIActive();
                                Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.UIActive, "Failed transition");
                                this.ActiveXState = ActiveXHelper.ActiveXState.UIActive;
                                break;
                            default:
                                Debug.Fail("bad state");
                                this.ActiveXState = this.ActiveXState + 1;  // To exit the loop
                                break;
                        }

                        OnActiveXStateChange((int)oldState, (int)this.ActiveXState);
                    }
                }
                finally
                {
                    this.SetAxHostState(ActiveXHelper.inTransition, false);
                }
            }
        }

Usage Example

Exemple #1
0
        // Token: 0x06006199 RID: 24985 RVA: 0x001B5E4C File Offset: 0x001B404C
        private static void OnGotFocus(object sender, KeyboardFocusChangedEventArgs e)
        {
            ActiveXHost activeXHost = sender as ActiveXHost;

            if (activeXHost != null)
            {
                Invariant.Assert(activeXHost.ActiveXState >= ActiveXHelper.ActiveXState.InPlaceActive, "Should at least be InPlaceActive when getting focus");
                if (activeXHost.ActiveXState < ActiveXHelper.ActiveXState.UIActive)
                {
                    activeXHost.TransitionUpTo(ActiveXHelper.ActiveXState.UIActive);
                }
            }
        }