Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Sets or returns the active program.
Namespace:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)
Syntax
'Declaration
Property CurrentProgram As Program
Program CurrentProgram { get; set; }
property Program^ CurrentProgram {
    Program^ get ();
    void set (Program^ value);
}
abstract CurrentProgram : Program with get, set
function get CurrentProgram () : Program 
function set CurrentProgram (value : Program)
Property Value
Type: EnvDTE.Program
A Program object.
Remarks
The active program is the program that defines the data displayed by the debugger. Although the debugger supports debugging more than one process at a time, only one process can be active at any given time. See Debugging Multiple Programs for more information.
Examples
Sub DumpStacks()
    ' This macro dumps the stack for each thread 
    ' running in the current program to the 
    ' Command window.  The output format is identical 
    ' to that of the call-stack window except the current
    ' line is not printed.
    Dim d As EnvDTE80.Debugger2
    d = DTE2.Debugger
    Dim ow As CommandWindow
    ow = DTE2.Windows.Item(Constants.vsWindowKindCommandWindow).Object
    If d.CurrentProgram Is Nothing Then
        ow.OutputString("No program is currently being debugged." + _
        vbCrLf)
    Else
        Dim MyThread As Thread
        ow.OutputString("Current Program: " + d.CurrentProgram.Name + _
        vbCrLf)
        For Each MyThread In d.CurrentProgram.Threads
            ow.OutputString("" + vbTab + "Thread _
            (" + Str(MyThread.ID) + " ) " + MyThread.Name + vbCrLf)
            Dim MyFrame As EnvDTE.StackFrame
            For Each MyFrame In MyThread.StackFrames
                Dim strModule As String
                Dim pos As Integer = InStrRev(MyFrame.Module, "\")
                If pos > 0 Then
                    strModule = Right(MyFrame.Module, _
                    Len(MyFrame.Module) - pos)
                Else
                    strModule = MyFrame.Module
                End If
                Dim strFName As String = MyFrame.FunctionName
                'Create the argument list.
                Dim strArgs As String
                Dim MyArg As Expression
                Dim i = 0
                For Each MyArg In MyFrame.Arguments
                    If i > 0 Then
                        strArgs = strArgs + ", "
                    End If
                    strArgs = strArgs + MyArg.Type + " " + _
                    MyArg.Name + "=" + MyArg.Value
                    i = i + 1
                Next
                'Output the frame information.
                ow.OutputString("" + vbTab + vbTab + strModule + ": _
                " + strFName + "(" + strArgs + ")" + vbCrLf)
            Next
        Next
    End If
End Sub
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.