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 QueryInterfaceIVsHierarchy 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.

Voir aussi