Principaux composants d’un modèle de projet

Les tableaux suivants s’étendent sur le modèle de projet. Les tableaux présentent de brèves descriptions des interfaces et services identifiés dans le modèle, ainsi que les interfaces et services associés à des objets spécifiques. En outre, les tables détaillent d’autres interfaces facultatives dans la création et la maintenance du projet en fonction des exigences de votre type de projet spécifique.

Pour plus d’informations, consultez Prise en charge des outils de navigation par symboles.

Objet Package

Interface Commentaires
IVsPackage Initialise un VSPackage dans l’IDE et met ses services à la disposition de l’IDE.

Objet Project Factory

Interface Commentaires
IVsProjectFactory Gère la création de projets et l’ouverture de projets existants.

Objets project

Interfaces Commentaires
IVsProject3 Gère l’ajout et la suppression d’éléments de projet, ouvre des éditeurs et gère le mappage entre chaque moniker de document et le VSITEMID. Hérite de IVsProject et IVsProject2.
IVsHierarchy Gère les propriétés de navigation et d’affichage et fournit des événements.
IVsUIHierarchy Active l’exécution de commandes similaire à celle des IOleCommandTarget commandes telles que Cut et Rename qui s’appliquent uniquement lorsque le focus se trouve dans Explorateur de solutions.
IOleCommandTarget Sert d’interface cible de commande principale pour une hiérarchie de projet. Il s’agit de l’interface standard pour interroger des objets pour leur état de commande ou leur état et exécuter des commandes. Disponible lorsque vous n’êtes pas concentré dans la fenêtre Projet.
IPersistFileFormat Coordonne la persistance de l’état du projet. En règle générale, l’état du projet est stocké en tant que fichier projet, mais peut être adapté aux systèmes de stockage qui ne sont pas basés sur des fichiers.
IVsPersistHierarchyItem2 Permet au projet de gérer tous les aspects de persistance de ses éléments de projet, en tant que fichiers sur disque ou objets dans d’autres systèmes de stockage. L’interface IVsPersistHierarchyItem2 est utilisée pour les éléments qui n’implémentent pas l’interface IVsPersistDocData2 .
IVsSccProject2 Coordonne les interactions avec le contrôle de code source.
IVsProjectFlavorCfgProvider Permet aux projets de gérer les informations de configuration.
IVsCfgProvider2 Gère les objets de configuration de projet, tels que les configurations Debug/Release. Les opérations de génération, de déploiement et de débogage sont coordonnées via des objets de configuration de projet.
IVsHierarchyDeleteHandler Implémenté par des hiérarchies pour contrôler les options de suppression (destructrice) ou de suppression (non destructrice) pour les éléments de hiérarchie. Appeler l’interface de requête sur l’interface IVsHierarchyDeleteHandler à partir de l’interface IVsHierarchy .
IVsGetCfgProvider Fournit l’option d’implémentation d’avoir l’objet qui prend en charge l’interface IVsCfgProvider2 sur une identité COM différente de celle de l’objet projet qui implémente l’interface IVsHierarchy .
IVsProjectStartupServices Interface facultative implémentée pour rendre votre projet extensible par d’autres développeurs. L’interface IVsProjectStartupServices permet à un VSPackage tiers d’inscrire un GUID que vous conservez dans votre fichier projet afin que chaque fois que votre projet se charge, vous chargez le GUID du service tiers dans votre fichier projet et appelez QueryService ce GUID.
IVsUIHierWinClipboardHelperEvents Implémenté par des hiérarchies sources dans une UIHierarchy fenêtre pour coordonner les opérations de Presse-papiers telles que couper, copier et coller. Utilisez l’interface AdviseClipboardHelperEvents pour inscrire les événements du Presse-papiers.
IVsHierarchyDropDataSource2 Fournit des informations sur un élément déplacé par rapport à sa source de données pendant une opération de glisser-déplacer dans une fenêtre de hiérarchie d’interface utilisateur. Appelé à partir de l’interface IVsHierarchy .
IVsHierarchyDropDataTarget Fournit des informations sur un élément déplacé par rapport à sa cible de déplacement pendant une opération de glisser-déplacer dans une fenêtre de hiérarchie d’interface utilisateur. Appelé à partir de l’interface IVsHierarchy .

Objet de configuration

Interfaces Commentaires
IVsCfg Fournit des informations sur une configuration.
IVsProjectCfg2 Permet aux projets de gérer les informations de configuration.
IVsDebuggableProjectCfg Permet à un projet d’être exécuté sous le contrôle du débogueur.
IVsDeployableProjectCfg Implémenté par des projets de déploiement qui effectuent des opérations de déploiement pour d’autres projets.

Objet Configuration Builder

Interfaces Commentaires
IVsBuildableProjectCfg Gère l’opération de génération d’une configuration de projet.

Objets Project supplémentaires

Interfaces Commentaires
IDispatch

ISpecifyPropertyPages
Affiche les propriétés d’élément dans la fenêtre Propriétés .
IVsOutput2

IVsEnumOutputs
Affiche les sorties pour le déploiement.

Le tableau suivant présente de brèves descriptions des services identifiés dans le modèle de projet.

Services

Service Commentaires
SVsRegisterProjectTypes Utilisé par les VSPackages qui implémentent des types de projet pour inscrire que leur fabrique de projet existe auprès de l’IDE. Votre VSPackage doit appeler QueryService ce service et inscrire sa fabrique de projet quand IVsPackage::SetSite la méthode est appelée. Si la SetSite méthode n’est pas appelée, votre projet n’est pas instancié.
SVsSolution Fournit l’accès à la notion interne et intégrée de l’IDE de la solution actuelle, telle que la possibilité d’énumérer des projets, de créer de nouveaux projets, de prendre connaissance des modifications de projet, etc.
SVsSccManager Appelé par les projets qui souhaitent participer au contrôle de code source.
SVsRunningDocumentTable Conserve une table des documents ouverts pour déterminer si un ou plusieurs de vos éléments de projet sont déjà ouverts.
SVsUIShellOpenDocument Contient les interfaces et méthodes appelées pour ouvrir un élément de projet à l’aide de l’éditeur standard ou d’un éditeur spécifique.
SVsTrackProjectDocuments Obligatoire pour être appelé par tous les projets lorsqu’ils ajoutent, suppriment ou renomment leurs éléments.
SVsFileChangeEx Gère les modifications apportées à un fichier ou à un répertoire et avertit les clients lorsque les fichiers sélectionnés ont été modifiés sur le disque.
SVsQueryEditQuerySave Obligatoire pour être appelé par tous les projets et éditeurs avant qu’ils sale des éléments ou les enregistrent.
SVsSolutionBuildManager Gère l’ordre des opérations de génération et de déploiement pour les configurations de projet.
SVsShellDebugger Fournit l’accès aux services de débogueur de bas niveau utilisés pour la plupart des contrôles de débogage.
SVsShellMonitorSelection Permet aux VSPackages d’accéder à des informations sur les sélections actuelles et active la communication avec la fenêtre Propriétés .
SVsUIShell Fournit des fonctionnalités d’IDE liées à l’interface utilisateur de base, telles que la possibilité de créer et d’énumérer des fenêtres d’outils ou des fenêtres de document ou de signaler une erreur à l’utilisateur.
SVsStatusbar Fournit l’accès à la barre d’état de l’IDE.
IVsExtensibility3 Utilisé pour implémenter le modèle d’automatisation. Dans votre modèle de projet, vous retournerez un objet de propriétés qui vous permet de créer une instance de cet objet.
SVsUIHierWinClipboardHelper Permet d’implémenter des événements de Presse-papiers sur l’objet projet dans la hiérarchie. SVsUIHierWinClipboardHelper vous permet de gérer correctement les opérations couper, copier et coller.

Voir aussi