static void Main(string[] args) { EnableVisualStyles(); // Always print GPL notice Console.WriteLine("NProf version {0} (C) 2003 by Matthew Mastracci", Profiler.Version); Console.WriteLine("http://nprof.sourceforge.net"); Console.WriteLine(); Console.WriteLine("This is free software, and you are welcome to redistribute it under certain"); Console.WriteLine("conditions set out by the GNU General Public License. A copy of the license"); Console.WriteLine("is available in the distribution package and from the NProf web site."); Console.WriteLine(); ProfilerForm pf = new ProfilerForm(); if (args.Length > 0) { pf.InitialProject = CreateProjectInfo(args); // If we're in command-line mode and we couldn't create a project, return if (pf.InitialProject == null) { return; } } Console.Out.Flush(); System.Threading.Thread.CurrentThread.Name = "GUI Thread"; System.Windows.Forms.Application.Run(pf); }
void IDTExtensibility2.OnConnection(object oApplication, Extensibility.ext_ConnectMode cmConnectMode, object oAddInInstance, ref System.Array arrCustom) { _pApplication = ( _DTE )oApplication; _pAddInInstance = (EnvDTE.AddIn)oAddInInstance; _pf = new ProfilerForm(); _pf.Owner = null; _pf.Closed += new EventHandler(_pf_Closed); // Hook up to run events Command cmdDebug; cmdDebug = _pApplication.Commands.Item("Debug.Start", 1); _cmdevDebugStart = _pApplication.Events.get_CommandEvents(cmdDebug.Guid, cmdDebug.ID); _cmdevDebugStart.BeforeExecute += new EnvDTE._dispCommandEvents_BeforeExecuteEventHandler(OnBeforeRun); _cmdevDebugStart.AfterExecute += new EnvDTE._dispCommandEvents_AfterExecuteEventHandler(OnAfterRun); cmdDebug = _pApplication.Commands.Item("Debug.StartWithoutDebugging", 1); _cmdevNoDebugStart = _pApplication.Events.get_CommandEvents(cmdDebug.Guid, cmdDebug.ID); _cmdevNoDebugStart.BeforeExecute += new EnvDTE._dispCommandEvents_BeforeExecuteEventHandler(OnBeforeRun); _cmdevNoDebugStart.AfterExecute += new EnvDTE._dispCommandEvents_AfterExecuteEventHandler(OnAfterRun); if (cmConnectMode == Extensibility.ext_ConnectMode.ext_cm_UISetup) { object[] contextGUIDS = new object[] { }; foreach (Command cmd in _pApplication.Commands) { try { if (cmd.Name != null && cmd.Name.StartsWith("NProf.Connect")) { cmd.Delete(); } } catch (Exception) { } } try { CommandBar barNProf = _pApplication.CommandBars["nprof Profiling"]; if (barNProf != null) { barNProf.Delete(); } } catch (Exception) { } Command command = _pApplication.Commands.AddNamedCommand( _pAddInInstance, "Enable", "Enable nprof", "Toggle nprof integration", true, 0, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusUnsupported); CommandBar barTools = ( CommandBar )_pApplication.CommandBars["Tools"]; CommandBar barMenu = ( CommandBar )_pApplication.Commands.AddCommandBar("nprof Profiling", vsCommandBarType.vsCommandBarTypeMenu, barTools, 1); CommandBarControl cbc = command.AddControl(barMenu, 1); } }
private void _pf_Closed(object sender, EventArgs e) { _pf = new ProfilerForm(); _pf.Owner = null; _pf.Closed += new EventHandler(_pf_Closed); }