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.
Executes the specified named command.
Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)
Syntax
'Declaration
Sub Exec ( _
    CmdName As String, _
    ExecuteOption As vsCommandExecOption, _
    ByRef VariantIn As Object, _
    <OutAttribute> ByRef VariantOut As Object, _
    <OutAttribute> ByRef Handled As Boolean _
)
void Exec(
    string CmdName,
    vsCommandExecOption ExecuteOption,
    ref Object VariantIn,
    out Object VariantOut,
    out bool Handled
)
void Exec(
    [InAttribute] String^ CmdName, 
    [InAttribute] vsCommandExecOption ExecuteOption, 
    [InAttribute] Object^% VariantIn, 
    [InAttribute] [OutAttribute] Object^% VariantOut, 
    [InAttribute] [OutAttribute] bool% Handled
)
abstract Exec : 
        CmdName:string * 
        ExecuteOption:vsCommandExecOption * 
        VariantIn:Object byref * 
        VariantOut:Object byref * 
        Handled:bool byref -> unit
function Exec(
    CmdName : String, 
    ExecuteOption : vsCommandExecOption, 
    VariantIn : Object, 
    VariantOut : Object, 
    Handled : boolean
)
Parameters
- CmdName 
 Type: System.String- The name of the command to execute. 
- ExecuteOption 
 Type: EnvDTE.vsCommandExecOption- A vsCommandExecOption constant specifying the execution options. 
- VariantIn 
 Type: System.Object%- A value passed to the command. 
- VariantOut 
 Type: System.Object%- A value passed back to the invoker Exec method after the command executes. 
- Handled
 Type: System.Boolean%
Remarks
The following example uses the Command object and its AddNamedCommand and AddControl methods, and the IDTCommandTarget interface and its (Exec and QueryStatus) methods, to demonstrate how to make an Add-in appear as a command on the Tools menu in Visual Studio. Note that this code does not work in a macro.
Examples
Implements IDTCommandTarget
Dim applicationObject As EnvDTE.DTE
Dim addInInstance as EnvDTE.AddIn
   
Dim objAddIn As AddIn = CType(addInInst, AddIn)
Dim CommandObj As Command
Try
   CommandObj = applicationObject.Commands.AddNamedCommand(objAddIn, "MyAddin1", "MyAddin1", "Executes the command for MyAddin1", True, 59, Nothing, 1 + 2)
   '1+2 == vsCommandStatusSupported+vsCommandStatusEnabled
   CommandObj.AddControl(applicationObject.CommandBars.Item("Tools"))
Catch e as System.Exception
End Try
Public Sub Exec(ByVal cmdName As String, ByVal executeOption As vsCommandExecOption, ByRef varIn As Object, ByRef varOut As Object, ByRef handled As Boolean) Implements IDTCommandTarget.Exec
   handled = False
   If (executeOption = vsCommandExecOption.vsCommandExecOptionDoDefault) Then
      If cmdName = "MyAddin1.Connect.MyAddin1" Then
         handled = True
         Exit Sub
      End If
   End If
End Sub
   
Public Sub QueryStatus(ByVal cmdName As String, ByVal neededText As vsCommandStatusTextWanted, ByRef statusOption As vsCommandStatus, ByRef commandText As Object) Implements IDTCommandTarget.QueryStatus
   If neededText = EnvDTE.vsCommandStatusTextWanted.vsCommandStatusTextWantedNone Then
      If cmdName = "MyAddin1.Connect.MyAddin1" Then
         statusOption = CType(vsCommandStatus.vsCommandStatusEnabled & vsCommandStatus.vsCommandStatusSupported, vsCommandStatus)
      Else
         statusOption = vsCommandStatus.vsCommandStatusUnsupported
      End If
   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.