protected override void Dispose(bool disposing) { try { try { } catch (Exception) { } this.m_GetOpenFilesThread.Exit(); this.m_TextFinder.Exit(); this.m_SolutionFiles.Exit(); this.m_Settings.Exit(); FastFindToolWindowPane.Destroy(); if (this.m_Solution != null && this.m_SolutionEventsCookie != 0u) { this.m_Solution.UnadviseSolutionEvents(this.m_SolutionEventsCookie); } this.Dispose(); } catch (Exception e) { Log.Write(e.Message + "\n" + e.StackTrace); } base.Dispose(disposing); }
protected override void Initialize() { base.Initialize(); try { Log.OpenFile(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\VSAnything\\VSAnything.log"); VSAnythingPackage.m_Inst = this; Log.WriteLine("----------------------------------------------------------"); Log.WriteLine("FastFind Initialise"); Log.WriteLine("FastFind Version: 4.8"); this.m_Settings.Read(); EnvDTE.DTE env_dte = (EnvDTE.DTE)base.GetService(typeof(SDTE)); string vs_version; try { vs_version = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; } catch (Exception e) { vs_version = "Error getting VS version: " + e.Message; } Log.WriteLine("Visual Studio Version: " + vs_version); this.m_DTE = new DTE(env_dte); this.m_TextFinder = new TextFinder(); this.m_FileFinder = new FileFinder(this.m_Settings); this.m_FileFinder.SetSolutionFiles(new List <string>(this.m_Settings.SolutionFiles)); this.m_SolutionFiles = new SolutionFiles(this.m_DTE); this.m_GetOpenFilesThread = new GetOpenFilesThread(env_dte); this.m_SolutionFiles.SolutionFileListChanged += new SolutionFiles.SolutionFileListChangedHandler(this.SolutionFilesChanged); this.m_DocumentEvents = env_dte.Events.get_DocumentEvents(null); this.m_SolutionEvents = env_dte.Events.SolutionEvents; this.m_WindowEvents = env_dte.Events.get_WindowEvents(null); //mariotodo 改成下面那样,不知道对不对 //this.m_DocumentEvents.DocumentSaved += new _dispDocumentEvents_DocumentSavedEventHandler(this, (UIntPtr)System.Reflection.Emit.OpCodes.Ldftn(DocumentSaved)); //this.m_SolutionEvents.ProjectAdded += new _dispSolutionEvents_ProjectAddedEventHandler(this, (UIntPtr)ldftn(ProjectAddedOrRemoved)); //this.m_SolutionEvents.ProjectRemoved += new _dispSolutionEvents_ProjectRemovedEventHandler(this, (UIntPtr)ldftn(ProjectAddedOrRemoved)); //this.m_WindowEvents.WindowActivated += new _dispWindowEvents_WindowActivatedEventHandler(this, (UIntPtr)ldftn(WindowActivated)); this.m_DocumentEvents.DocumentSaved += new _dispDocumentEvents_DocumentSavedEventHandler(this.DocumentSaved); this.m_SolutionEvents.ProjectAdded += new _dispSolutionEvents_ProjectAddedEventHandler(this.ProjectAddedOrRemoved); this.m_SolutionEvents.ProjectRemoved += new _dispSolutionEvents_ProjectRemovedEventHandler(this.ProjectAddedOrRemoved); this.m_WindowEvents.WindowActivated += new _dispWindowEvents_WindowActivatedEventHandler(this.WindowActivated); FastFindToolWindowPane.Initialise(this.m_DTE, this.m_SolutionFiles, this.m_FileFinder, this.m_TextFinder, this.m_GetOpenFilesThread, this.m_Settings); OleMenuCommandService mcs = base.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; this.m_FastFindCmd.Initialise(this.m_DTE, this.m_SolutionFiles, this.m_FileFinder, this.m_TextFinder, this.m_GetOpenFilesThread, mcs, this.m_Settings); this.m_FastFindWindowCmd.Initialise(this, this.m_DTE, mcs, this.m_Settings); this.m_SourceHeaderToggleCmd.Initialise(this.m_DTE, this.m_SolutionFiles, mcs); this.m_SettingsCmd.Initialise(mcs); this.m_Solution = (base.GetService(typeof(SVsSolution)) as IVsSolution2); if (this.m_Solution != null) { int ret = this.m_Solution.AdviseSolutionEvents(this, out this.m_SolutionEventsCookie); Log.WriteLine("AdviseSolutionEvents returned " + ret); } this.AddSolutionFileToSettings(); if (this.m_DTE.EnvDTE.Solution != null) { foreach (Project project in this.m_DTE.EnvDTE.Solution.Projects) { IVsHierarchy pHierarchy = null; if (this.m_Solution.GetProjectOfUniqueName(project.UniqueName, out pHierarchy) == 0 && pHierarchy != null) { this.AdviseHierarchyEvents(pHierarchy); } } } if (!this.m_Settings.ShownWelcomeForm) { new System.Threading.Thread(new ThreadStart(this.WelcomeThread)).Start(); } } catch (Exception arg_368_0) { Utils.LogException(arg_368_0); } }