IDTCommandTarget.Exec - метод
Обновлен: Ноябрь 2007
Выполняет указанную именованную команду.
Пространство имен: EnvDTE
Сборка: EnvDTE (в EnvDTE.dll)
Синтаксис
'Декларация
Sub Exec ( _
CmdName As String, _
ExecuteOption As vsCommandExecOption, _
ByRef VariantIn As Object, _
<OutAttribute> ByRef VariantOut As Object, _
<OutAttribute> ByRef handled As Boolean _
)
'Применение
Dim instance As IDTCommandTarget
Dim CmdName As String
Dim ExecuteOption As vsCommandExecOption
Dim VariantIn As Object
Dim VariantOut As Object
Dim handled As Boolean
instance.Exec(CmdName, ExecuteOption, _
VariantIn, VariantOut, handled)
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
)
function Exec(
CmdName : String,
ExecuteOption : vsCommandExecOption,
VariantIn : Object,
VariantOut : Object,
handled : boolean
)
Параметры
- CmdName
Тип: System.String
Имя команды, которую требуется выполнить.
- ExecuteOption
Тип: EnvDTE.vsCommandExecOption
Константа vsCommandExecOption, задающая параметры выполнения.
- VariantIn
Тип: System.Object%
Значение, передаваемое команде.
- VariantOut
Тип: System.Object%
Значение, возвращаемое в метод Exec вызывающего кода после выполнения команды.
- handled
Тип: System.Boolean%
Заметки
В следующем примере используется объект Command и его методы AddNamedCommand и AddControl, а также интерфейс IDTCommandTarget (с двумя своими методами Exec и QueryStatus). В примере показано, как включить надстройку в виде команды в меню Сервис среды Visual Studio. Обратите внимание, что этот код не работает в составе макроса.
Примеры
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
Разрешения
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.