Compartir a través de


Provisión de automatización de VSPackages

Hay dos maneras principales de proporcionar automatización para los VSPackages: mediante la implementación de objetos específicos de VSPackage y la implementación de objetos de automatización estándar. Por lo general, se usan conjuntamente para ampliar el modelo de automatización del entorno.

Objetos específicos de VSPackage

Algunos lugares dentro del modelo de automatización requieren que proporcione objetos de automatización que sean exclusivos de VSPackage. Por ejemplo, los nuevos proyectos requieren objetos distintos que solo proporciona VSPackage. Los nombres de estos objetos se escriben en el Registro y se obtienen mediante llamadas al objeto de entorno DTE .

Los objetos específicos de VSPackage también se pueden obtener cuando un consumidor de automatización usa el objeto proporcionado a través de la propiedad Object de un objeto estándar. Por ejemplo, el objeto estándar Window tiene una Object propiedad, conocida normalmente como la Windows.Object propiedad . Cuando los consumidores llaman a en Window.Object una ventana implementada en VSPackage, se pasa un objeto de automatización específico de su propio diseño.

Proyectos

VSPackages puede ampliar el modelo de automatización para los nuevos tipos de proyecto a través de sus propios objetos específicos de VSPackage. El propósito principal de proporcionar nuevos objetos de automatización para VSPackage es diferenciar los objetos de proyecto únicos de un VCProject objeto o VSProject2 . Esta diferenciación es útil cuando se desea proporcionar una manera de destacar o iterar el tipo de proyecto aparte de otros tipos de proyecto, en caso de que aparezcan en paralelo en una solución. Para obtener más información, vea Exponer objetos de proyecto.

Eventos

La arquitectura de eventos del entorno ofrece otro lugar para anexar sus propios objetos específicos de VSPackage. Por ejemplo, mediante la creación de sus propios objetos de evento únicos, puede ampliar el modelo de eventos del entorno para los proyectos. Es posible que quiera proporcionar sus propios eventos cuando se agrega un nuevo elemento a su propio tipo de proyecto. Para obtener más información, vea Exponer eventos.

Window (Objetos)

Windows puede devolver un objeto de automatización específico de VSPackage al entorno cuando se llama a . Implemente un objeto derivado de IVsExtensibleObject, IExtensibleObject o IDispatch que devuelva propiedades, extendiendo el objeto de ventana en el que se encuentra. Por ejemplo, puede usar este enfoque para proporcionar automatización para un control de sitio en un marco de ventana. La semántica de este objeto y cualquier otro objeto que pueda extender son los suyos para diseñar. Para obtener más información, vea Cómo: Proporcionar automatización para Windows.

Páginas de opciones en el menú Herramientas

Puede crear páginas para ampliar el modelo de automatización herramientas, opciones a través de la implementación de páginas y la adición de información al registro para crear sus propias opciones. A continuación, se puede llamar a las páginas a través del modelo de objetos de entorno como cualquier otra página de opciones. Si el diseño de la característica que va a agregar al entorno a través de VSPackages requiere páginas de opciones, también debe agregar la compatibilidad de automatización. Para obtener más información, consulte Compatibilidad de Automation para páginas de opciones.

Objetos de Automatización estándar

Para ampliar la automatización de los proyectos, también se implementan objetos de automatización estándar (derivados de IDispatch) que se describen junto a los demás objetos de proyecto e implementan métodos y propiedades estándar. Algunos ejemplos de objetos estándar incluyen los objetos de proyecto que se insertan en la jerarquía de soluciones, como Projects, Project, ProjectItemy ProjectItems. Cada nuevo tipo de proyecto debe implementar estos objetos (y posiblemente otros en función de la semántica del proyecto).

En cierto sentido, estos objetos proporcionan la ventaja opuesta de los objetos de proyecto específicos de VSPackage. Los objetos de automatización estándar permiten que el proyecto se use de forma generalizada, como cualquier otro proyecto que admita los mismos objetos. Por lo tanto, un complemento que se escribe en objetos generales Project y ProjectItem puede funcionar en proyectos de cualquier tipo. Para obtener más información, vea Modelado de proyectos.