Propiedades y métodos ampliados por subtipos de proyecto
Un subtipo de proyecto tiene mucha capacidad para influir en el comportamiento del proyecto porque se construye como agregador de un proyecto base. En esta sección se resumen algunas de las características que se pueden mejorar o modificar mediante subtipos de proyecto.
Características adquiridas por agregación
En la tabla siguiente se resumen muchos de los métodos que la agregación permite que los subtipos del proyecto invaliden en proyectos base.
Métodos invalidados por agregación | Subtipo de proyecto |
---|---|
Desde IVsHierarchy: GetProperty SetProperty GetGuidProperty SetGuidProperty |
Habilita un subtipo de proyecto para - Cambiar subtítulo e icono del nodo del proyecto. : invalida completamente el objeto de proyecto Browse .- Controlar si se puede cambiar el nombre del proyecto. - Control del criterio de ordenación. - Controlar el contexto del usuario para obtener ayuda dinámica. |
Desde IVsProject: GetItemContext |
Permite que un subtipo de proyecto controle qué servicios contextuales se proporcionan a los diseñadores y editores. |
Desde IOleCommandTarget: QueryStatus Exec QueryStatusCommand ExecCommand |
Habilita un subtipo de proyecto para - Participar en el enrutamiento de comandos para los comandos del proyecto. - Agregue, quite o deshabilite los comandos ambientales del proyecto y Explorador de soluciones comandos activos. |
IVsFilterAddProjectItemDlg2 | Permite que el subtipo del proyecto filtre lo que ve el usuario en el cuadro de diálogo Agregar nuevo elemento . |
IVsSingleFileGeneratorFactory | Habilita un subtipo de proyecto para - Determine el generador predeterminado dado una extensión de archivo. - Asigne un nombre de generador legible a un objeto COM. |
Propiedades usadas por subtipos de proyecto
El entorno y el sistema de proyectos base pueden usar las propiedades de __VSSPROPID y __VSSPROPID2 las enumeraciones que se detallan en la tabla siguiente para permitir que un subtipo de proyecto controle varias características del sistema de proyectos.
PROPIEDAD VSHPROPID | Subtipo de proyecto |
---|---|
AddItemTemplatesGuid |
Permite que un subtipo de proyecto controle el contenido del cuadro de diálogo Agregar elemento . El subtipo del proyecto puede proporcionar una nueva especificación de directorios de plantilla, agregar nuevos tipos de elementos, quitar elementos existentes y reorganizar un subconjunto de los elementos en el cuadro de diálogo Agregar elemento del proyecto base. |
PropertyPagesCLSIDList |
Permite que un subtipo de proyecto agregue o quite páginas de propiedades independientes de la configuración. |
CfgPropertyPagesCLSIDList |
Permite que un subtipo de proyecto agregue o quite páginas de propiedades dependientes de la configuración. |
ExtObjectCATID |
Permite que un subtipo de proyecto proporcione un extensor de Automatización para los objetos de proyecto o proyecto sabiendo el CATID extensor. Por ejemplo, un subtipo de proyecto puede proporcionar un objeto personalizado Project.Extender("<subtype>") . |
BrowseObjectCATID |
Permite que un subtipo de proyecto proporcione un extensor de automatización para el Browse objeto sabiendo el CATID extensor. Por ejemplo, un subtipo de proyecto puede agregar propiedades adicionales a la Properties colección. |
CfgBrowseObjectCATID |
Permite que un subtipo de proyecto proporcione un extensor de Automatización para el objeto de examen de configuración del proyecto. Por ejemplo, un subtipo de proyecto puede agregar propiedades adicionales a la Properties colección. |
CfgExtObjectCATID |
Permite que un subtipo de proyecto proporcione un extensor de Automation para el objeto de configuración. |
DefaultPlatformName |
Permite que un subtipo de proyecto determine el nombre de la plataforma para los objetos de configuración del proyecto. |
El proyecto base proporciona una implementación predeterminada de las propiedades anteriores. El proyecto base obtiene estos mediante una llamada QueryInterface
a para IVsHierarchy en el subtipo de proyecto más externo, lo que permite que el subtipo del proyecto invalide la implementación de las propiedades.