Componentes de un proyecto de complementos
Los proyectos de complementos son proyectos de bibliotecas de clases que se crean a través del Asistente para complementos y se compilan en archivos DLL. Los proyectos de complementos contienen un archivo de código fuente denominado Connect, que también es el nombre de la clase. La clase Connect implementa una interfaz denominada IDTExtensibility2, que pasa comandos entre el complemento y el entorno de desarrollo integrado (IDE) de Visual Studio.
IDTExtensibility2 tiene cinco métodos que, cuando se implementan, actúan como eventos.
Método |
Descripción |
---|---|
Se llama a este método cuando el complemento se carga en Visual Studio. |
|
Se llama a este método cuando Visual Studio finaliza la carga. |
|
Se llama a este método cuando un complemento se carga o descarga desde Visual Studio. |
|
Se llama a este método cuando se cierra Visual Studio. |
|
Se llama a este método cuando el complemento se descarga desde Visual Studio. |
Además de la interfaz IDTExtensibility2, la interfaz IDTCommandTarget se implementa automáticamente si se activa la opción de interfaz de usuario al utilizar el Asistente para complementos para crear un complemento. Si decide crear o manipular barras de comandos en el complemento, también deberá implementar el espacio de nombres Microsoft.VisualStudio.CommandBars.
OnConnection (Método)
El método OnConnection es definitivamente el método más importante utilizado en proyectos de complemento, ya que se le llama cada vez que se carga un complemento. Además, se utiliza para llamar a otro código de automatización en el complemento. Al método OnConnection se le pasan cuatro parámetros: Application, ConnectMode, AddInInst y custom. Application representa el IDE de Visual Studio. Se asigna como objeto DTE2 con el nombre _applicationObject. Este objeto representa el objeto principal del modelo de automatización básico y proporciona acceso a todos sus tipos y miembros. ConnectMode (cuyos valores se encuentran en Extensibility.extConnectMode) representa la forma en la que se carga el complemento; es decir, a través de la línea de comandos, al abrir una solución, etc. AddInInst representa el propio complemento. El parámetro custom es una matriz en la que puede pasar datos al complemento en forma opcional.
Además de inicializar estas variables, OnConnection también contiene código con el fin de crear un comando para el complemento en el menú Herramientas si selecciona dicha opción al crear el complemento con el Asistente para complementos.
Métodos de complementos adicionales
Los otros cuatro métodos de complementos creados por el Asistente para complementos, están vacíos de forma predeterminada. Para controlar eventos relacionados con el complemento, puede utilizar estos otros métodos para responder a ellos. Por ejemplo, podría agregar código al método OnAddInsUpdate para enviar un mensaje de notificación a otro procedimiento cuando se cierre un complemento. Puede llamar a OnBeginShutdown para que realice tareas de limpieza cuando se cierra el IDE de Visual Studio.
Cuando crea un complemento y activa la opción "¿Desea crear la interfaz de usuario de barra de comandos para el complemento?" (que crea un comando para el complemento del menú Herramientas), se implementa la interfaz IDTCommandTarget. Al proyecto de complementos se agregan dos métodos adicionales para controlar las tareas de comando: QueryStatus y Exec. Estos métodos contienen una pequeña cantidad de código que ayuda a colocar el comando en el menú Herramientas y responden a los clics de un usuario. QueryStatus notifica al complemento acerca de la disponibilidad del comando. Cuando un usuario hace clic en el comando del complemento en el menú Herramientas, se llama al método Exec; por lo tanto, aquí es donde debe agregar código si desea responder a dicho evento.