/// <summary>
        /// Implementation of SolidEdgeFramework.ISolidEdgeAddIn.OnDisconnection().
        /// </summary>
        public void OnDisconnection(SolidEdgeFramework.SeDisconnectMode DisconnectMode)
        {
            // Handle DisconnectMode if necessary.
            switch (DisconnectMode)
            {
                case SolidEdgeFramework.SeDisconnectMode.seDisconnectAtShutdown:
                    break;
                case SolidEdgeFramework.SeDisconnectMode.seDisconnectByUser:
                    break;
                case SolidEdgeFramework.SeDisconnectMode.seDisconnectExternally:
                    break;
            }

            // Cleanup.
            _edgeBarController.Dispose();
            _edgeBarController = null;

            // Unhook all events.
            UnhookAllEvents();
        }
        /// <summary>
        /// Implementation of SolidEdgeFramework.ISolidEdgeAddIn.OnConnection().
        /// </summary>
        public void OnConnection(object Application, SolidEdgeFramework.SeConnectMode ConnectMode, SolidEdgeFramework.AddIn AddInInstance)
        {
            _application = (SolidEdgeFramework.Application)Application;
            _addInEx = (SolidEdgeFramework.ISEAddInEx)AddInInstance;
            _resourceAssembly = Assembly.GetExecutingAssembly();
            _edgeBarController = new EdgeBarController(this);

            // Attach specified events.
            HookEvents(_addInEx, typeof(SolidEdgeFramework.ISEAddInEvents).GUID);
            HookEvents(_application, typeof(SolidEdgeFramework.ISEApplicationEvents).GUID);

            // Handle ConnectMode if necessary.
            switch (ConnectMode)
            {
                case SolidEdgeFramework.SeConnectMode.seConnectAtStartup:
                    break;
                case SolidEdgeFramework.SeConnectMode.seConnectByUser:
                    break;
                case SolidEdgeFramework.SeConnectMode.seConnectExternally:
                    break;
            }
        }