Chapter 13: Extending Visual Studio 2010 383

/// <summary>
/// Implements the Exec method of the IDTCommandTarget
/// interface. This is called when the command is invoked.
/// </summary>
/// <param term='commandName'>
/// The name of the command to execute.
/// </param>
/// <param term='executeOption'>
/// Describes how the command should be run.
/// </param>
/// <param term='varIn'>
/// Parameters passed from the caller to the command handler.
/// </param>
/// <param term='varOut'>
/// Parameters passed from the command handler to the caller.
/// </param>
/// <param term='handled'>
/// Informs the caller if the command was handled or not.
/// </param>
/// <seealso class='Exec' />
public void Exec(
string commandName, vsCommandExecOption executeOption,
ref object varIn, ref object varOut, ref bool handled)
{
}
private DTE2 _applicationObject;
private AddIn _addInInstance;
}
}
You’ve had an overview of what the IDTExtensibility2 and IDTCommandTarget
interfaces do and reviewed the comments in Listing 13-1. In the next section, you’ll see
how to add your own code to the interface methods to make the KeystrokeFinder Add-In
perform some useful work.
Adding Functionality to an Add-In
When implementing the functionality of an Add-In, you’ll be most concerned with
capturing the call to Exec, which VS calls whenever the user selects the Tools menu item
for your Add-In. This section will also cover a couple of other methods: OnConnection,
which contains a lot of initialization code, and QueryStatus, which is handy for managing
the state of the Add-In menu item. We’ll look at OnConnection first so that you can see
how the Add-In is initialized.