//
        // Called during early stage toolset deinitialization.
        //

        virtual public void Unload(INWN2PluginHost Host)
        {
            ListView Lv;

            //
            // Early toolset teardown; deinitialize the script compiler hook so
            // that we may unload cleanly.
            //

            Lv = PluginUI.GetVerifyOutputListView();

            if (Lv != null)
            {
                Lv.ItemActivate -= this.OnVerifyOutputListViewItemActivated;
            }

            UnhookScriptCompiler();

            if (NWN2ToolsetMainForm.VersionControlManager.Preferences != null)
            {
                if (NWN2ToolsetMainForm.VersionControlManager.Preferences.ActiveProvider == this)
                {
                    NWN2ToolsetMainForm.VersionControlManager.Preferences.ActiveProvider = m_OriginalVCPlugin;
                }

                m_OriginalVCPlugin = null;
            }

            m_SettingsManager = null;
        }
        //
        // Standard INWN2Plugin methods.
        //

        //
        // Called during late stage toolset initialization.
        //

        virtual public void Load(INWN2PluginHost Host)
        {
            ListView Lv;

            m_SettingsManager = new SettingsManager();
            m_SettingsManager.NeedSettingsLoad = true;

            //
            // By the time Load is invoked, the compiler is present.  Install
            // the compiler hook now.
            //

            m_CompilerField = GetMainFormCompilerField();

            m_ResourceAccessor = new ResourceAccessor(this);

            HookScriptCompiler();

            //
            // Hook the version control system for resource change notification
            // distribution if preferences were available at this point.
            //
            // Otherwise, wait for a change notification to install the hook.
            //
            //

            if (NWN2ToolsetMainForm.VersionControlManager.Preferences != null)
            {
                m_OriginalVCPlugin = NWN2ToolsetMainForm.VersionControlManager.Preferences.ActiveProvider;

                if (m_OriginalVCPlugin == this)
                {
                    m_OriginalVCPlugin = null;
                }

                NWN2ToolsetMainForm.VersionControlManager.Preferences.ActiveProvider = this;
            }
            else
            {
                NWN2Toolset.Plugins.NWN2VersionControlManagerPreferences.PreferencesChanged += this.OnVersionControlManagerPrefsChanged;
            }

            Lv = PluginUI.GetVerifyOutputListView();

            if (Lv != null)
            {
                Lv.ItemActivate += this.OnVerifyOutputListViewItemActivated;
            }
        }