예제 #1
0
 public int EnumProcesses(out IEnumDebugProcesses2 ppEnum)
 {
     RemoteEnumDebugProcess processList = new RemoteEnumDebugProcess(_computerName);
     processList.connect(this, _supplier.UsesSSL());
     ppEnum = processList;
     return VSConstants.S_OK;
 }
 public int Clone(out IEnumDebugProcesses2 ppEnum)
 {
     ppEnum = new RemoteEnumDebugProcess(_remoteComputer);
     foreach (ScriptDebugProcess process in _runningProcesses)
     {
         ((RemoteEnumDebugProcess)ppEnum)._runningProcesses.Add(process);
     }
     return(VSConstants.S_OK);
 }
예제 #3
0
        public int GetProcess(AD_PROCESS_ID ProcessId, out IDebugProcess2 ppProcess)
        {
            RemoteEnumDebugProcess processList = new RemoteEnumDebugProcess(_computerName);
            processList.connect(this, _supplier.UsesSSL());
            uint numProcesses = 0;
            uint numRetrieved = 0;
            ppProcess = null;

            processList.GetCount(out numProcesses);
            IDebugProcess2[] processes = new IDebugProcess2[numProcesses];
            processList.Next(numProcesses, processes, ref numRetrieved);
            
            while (numRetrieved >= 0)
            {
                if ((processes[numRetrieved - 1] as ScriptDebugProcess).ProcessId == ProcessId.dwProcessId)
                {
                    ppProcess = processes[numRetrieved - 1];
                    return VSConstants.S_OK;
                }
                numRetrieved--;
            }

            return VSConstants.S_FALSE;
        }