private void OnProcDebugCreate(CPProcEvArgs args) { IProjectChartPoints pPnts = Globals.processor.GetProjectChartPoints(Path.GetFileNameWithoutExtension(args.Name)); if (pPnts != null && pPnts.Count > 0) { TraceTransport.Open(); traceHandlers.Add(new CPTraceHandler(args.procId, args.Name)); cpTraceFlag = true; } }
private void OnProcDebugDestroy(CPProcEvArgs args) { CPTraceHandler tracer = traceHandlers.FirstOrDefault((h) => (h.id == args.procId)); if (tracer != null) { tracer.Dispose(); traceHandlers.Remove(tracer); tracer = null; if (traceHandlers.Count == 0) { TraceTransport.Close(); ICPTracerService traceServ; cpServProv.GetService <ICPTracerService>(out traceServ); traceServ.Show(); } } }
private bool CreateProcEvArgs(IDebugProcess2 pProcess, out CPProcEvArgs args) { args = null; string name = string.Empty; if (pProcess.GetName((uint)enum_GETNAME_TYPE.GN_NAME /*GN_BASENAME*/, out name) != VSConstants.S_OK) { return(false); } AD_PROCESS_ID[] adProcId = new AD_PROCESS_ID[1]; if (pProcess.GetPhysicalProcessId(adProcId) != VSConstants.S_OK) { return(false); } args = new CPProcEvArgs(adProcId[0].dwProcessId, name); return(true); }