void OnStartEditing()
        {
            // Don't do anything if the extension is disabled
            if (IsExtensionEnabled != true)
            {
                return;
            }

            // Check that the workspace being edited is NCGMP-valid.
            m_EditWorkspace   = theEditor.EditWorkspace;
            m_DatabaseIsValid = ncgmpChecks.IsWorkspaceMinNCGMPCompliant(m_EditWorkspace);

            //// Check that the SysInfo table is present.
            //if (m_DatabaseIsValid == true)
            //{
            //    m_DatabaseIsValid = ncgmpChecks.IsSysInfoPresent(m_EditWorkspace);
            //}

            // Open the SysInfo Table, Look for ProjectID values
            if (m_DatabaseIsValid == true)
            {
                m_SysInfo = new sysInfo(m_EditWorkspace);

                // If Project Name has not yet been specified, then open the form to set it.
                if (m_SysInfo.ProjName == null)
                {
                    Forms.newDatabaseInfo NewInfoForm = new Forms.newDatabaseInfo();
                    NewInfoForm.ShowDialog();
                    m_SysInfo.ProjName = NewInfoForm.projTitle;
                    m_SysInfo.ProjAbbr = NewInfoForm.projAbbr;
                }

                // Check other Database-validity things
                m_DatabaseUsesRepresentation = ncgmpChecks.AreRepresentationsUsed(m_EditWorkspace);
                //m_DatabaseHasStations = ncgmpChecks.IsAzgsStationAddinPresent(m_EditWorkspace);
            }

            // From http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esrigeodatabase/IWorkspaceEditControl.htm
            //  "By default on simple classes, insert cursors handed out by the geodatabase will internally bypass the CreateRow
            //   and Store mechanisms when creating and updating objects.  Tools that use insert cursors include Planarize,
            //   Create Features and the Object Loader.  When CreateRow and Store are bypassed, subsequent events are not fired
            //   for clients listening to IEditEvents and IObjectClassEvents."
            //
            // I have to do this because the topology tool uses an Insert cursor, bypassing the OnCreate event!
            IWorkspaceEditControl wsEditControl = (IWorkspaceEditControl)m_EditWorkspace;

            wsEditControl.SetStoreEventsRequired();

            // Set the Global variable that notifies other classes that the database is valid NCGMP
            g_EditWorkspaceIsValid = true;
        }
        void OnStartEditing()
        {
            // Don't do anything if the extension is disabled
            if (IsExtensionEnabled != true) { return; }

            // Check that the workspace being edited is NCGMP-valid.
            m_EditWorkspace = theEditor.EditWorkspace;
            m_DatabaseIsValid = ncgmpChecks.IsWorkspaceMinNCGMPCompliant(m_EditWorkspace);

            // Check that the SysInfo table is present.
            if (m_DatabaseIsValid == true)
            {
                m_DatabaseIsValid = ncgmpChecks.IsSysInfoPresent(m_EditWorkspace);
            }

            // Open the SysInfo Table, Look for ProjectID values
            if (m_DatabaseIsValid == true)
            {
                m_SysInfo = new sysInfo(m_EditWorkspace);

                // If Project Name has not yet been specified, then open the form to set it.
                if (m_SysInfo.ProjName == null)
                {
                    Forms.newDatabaseInfo NewInfoForm = new Forms.newDatabaseInfo();
                    NewInfoForm.ShowDialog();
                    m_SysInfo.ProjName = NewInfoForm.projTitle;
                    m_SysInfo.ProjAbbr = NewInfoForm.projAbbr;
                }

                // Check other Database-validity things
                m_DatabaseUsesRepresentation = ncgmpChecks.AreRepresentationsUsed(m_EditWorkspace);
                m_DatabaseHasStations = ncgmpChecks.IsAzgsStationAddinPresent(m_EditWorkspace);
            }

            // From http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esrigeodatabase/IWorkspaceEditControl.htm
            //  "By default on simple classes, insert cursors handed out by the geodatabase will internally bypass the CreateRow
            //   and Store mechanisms when creating and updating objects.  Tools that use insert cursors include Planarize,
            //   Create Features and the Object Loader.  When CreateRow and Store are bypassed, subsequent events are not fired
            //   for clients listening to IEditEvents and IObjectClassEvents."
            //
            // I have to do this because the topology tool uses an Insert cursor, bypassing the OnCreate event!
            IWorkspaceEditControl wsEditControl = (IWorkspaceEditControl)m_EditWorkspace;
            wsEditControl.SetStoreEventsRequired();

            // Set the Global variable that notifies other classes that the database is valid NCGMP
            g_EditWorkspaceIsValid = true;
        }