Propriétés et méthodes étendues par les sous-types de projets
Un sous-type de projet a beaucoup de pouvoir influencer le comportement du projet, car il est construit en tant qu’agrégateur d’un projet de base. Cette section récapitule certaines des fonctionnalités qui peuvent être améliorées ou modifiées par les sous-types de projet.
Fonctionnalités acquises par agrégation
Le tableau suivant récapitule la plupart des méthodes qui permettent à l’agrégation de remplacer les sous-types de projet dans les projets de base.
Méthodes remplacées par l’agrégation | Sous-type de projet |
---|---|
À partir de IVsHierarchy: GetProperty SetProperty GetGuidProperty SetGuidProperty |
Permet à un sous-type de projet de - Modifier légende et l’icône du nœud de projet. - Remplacer complètement l’objet de projet Browse .- Contrôler si le projet peut être renommé. - Contrôler l’ordre de tri. - Contrôler le contexte utilisateur pour obtenir de l’aide dynamique. |
À partir de IVsProject: GetItemContext |
Permet à un sous-type de projet de contrôler les services contextuels fournis aux concepteurs et aux éditeurs. |
À partir de IOleCommandTarget: QueryStatus Exec QueryStatusCommand ExecCommand |
Permet à un sous-type de projet de - Participez au routage des commandes du projet. - Ajoutez, supprimez ou désactivez les commandes ambiantes du projet et Explorateur de solutions commandes actives. |
IVsFilterAddProjectItemDlg2 | Permet au sous-type de projet de filtrer ce que l’utilisateur voit dans la boîte de dialogue Ajouter un nouvel élément . |
IVsSingleFileGeneratorFactory | Permet à un sous-type de projet de - Déterminez le générateur par défaut en fonction d’une extension de fichier. - Mapper un nom de générateur lisible humain à un objet COM. |
Propriétés utilisées par les sous-types de projet
L’environnement et le système de projet de base peuvent utiliser les propriétés de __VSSPROPID et __VSSPROPID2 d’énumérations détaillées dans le tableau suivant pour permettre à un sous-type de projet de contrôler différentes fonctionnalités du système de projet.
VSHPROPID, propriété | Sous-type de projet |
---|---|
AddItemTemplatesGuid |
Permet à un sous-type de projet de contrôler le contenu de la boîte de dialogue Ajouter un élément . Le sous-type de projet peut fournir une nouvelle spécification des répertoires de modèles, ajouter de nouveaux types d’éléments, supprimer des éléments existants et réorganiser un sous-ensemble des éléments dans la boîte de dialogue Ajouter un élément du projet de base. |
PropertyPagesCLSIDList |
Permet à un sous-type de projet d’ajouter ou de supprimer des pages de propriétés indépendantes de la configuration. |
CfgPropertyPagesCLSIDList |
Permet à un sous-type de projet d’ajouter ou de supprimer des pages de propriétés dépendantes de la configuration. |
ExtObjectCATID |
Permet à un sous-type de projet de fournir un extendeur Automation pour les objets de projet ou d’élément de projet en connaissant l’ID CATID de l’extendeur. Par exemple, un sous-type de projet peut fournir un objet personnalisé Project.Extender("<subtype>") . |
BrowseObjectCATID |
Permet à un sous-type de projet de fournir un extendeur Automation pour l’objet Browse en connaissant l’ID CATID de l’extendeur. Par exemple, un sous-type de projet peut ajouter des propriétés supplémentaires à la Properties collection. |
CfgBrowseObjectCATID |
Permet à un sous-type de projet de fournir un extendeur Automation pour l’objet parcourir la configuration du projet. Par exemple, un sous-type de projet peut ajouter des propriétés supplémentaires à la Properties collection. |
CfgExtObjectCATID |
Permet à un sous-type de projet de fournir un extendeur Automation pour l’objet de configuration. |
DefaultPlatformName |
Permet à un sous-type de projet de déterminer le nom de la plateforme pour les objets de configuration du projet. |
Le projet de base fournit une implémentation par défaut des propriétés ci-dessus. Le projet de base obtient ces informations en appelant QueryInterface
IVsHierarchy sur le sous-type de projet le plus externe, ce qui permet au sous-type de projet de remplacer l’implémentation des propriétés.