Partager via


Éléments d’un modèle de projet

Les interfaces et les implémentations de tous les projets dans Visual Studio partagent une structure de base : le modèle de projet correspondant à votre type de projet. Dans votre modèle de projet, qui est le VSPackage que vous développez, vous créez des objets qui sont conformes à vos décisions de conception et qui fonctionnent avec les fonctionnalités globales fournies par l’IDE. Bien que vous contrôliez la persistance d’un élément de projet, par exemple, vous ne contrôlez pas la notification qu’un fichier doit être persistant. Lorsqu’un utilisateur place le curseur sur un élément de projet ouvert et choisit Enregistrer dans le menu Fichier de la barre de menu de Visual Studio, le code de votre type de projet doit intercepter la commande de l’IDE, faire persister le fichier et envoyer une notification à l’IDE pour l’informer que le fichier n’est plus modifié.

Votre VSPackage interagit avec l’IDE via des services qui fournissent l’accès aux interfaces IDE. Par exemple, à travers des services particuliers, vous surveillez et acheminez les commandes et fournissez des informations contextuelles pour les sélections effectuées dans le projet. Toutes les fonctionnalités globales de l’IDE nécessaires à votre VSPackage sont fournies par des services. Pour plus d’informations sur les services, consultez Aide et Astuces : Comment obtenir un service.

Autres considérations relatives à l’implémentation :

  • Un modèle de projet unique peut contenir plusieurs types de projet.

  • Les types de projets et les fabriques de projets correspondantes sont inscrits indépendamment avec des GUID.

  • Chaque projet doit avoir un modèle de fichier ou un assistant pour initialiser le nouveau fichier projet lorsqu’un utilisateur crée un projet par l’intermédiaire de l’IU de Visual Studio. Par exemple, les modèles Visual C++ initialisent ce qui deviendra par la suite des fichiers .vcproj.

    L’illustration suivante montre les interfaces principales, les services et les objets qui composent une implémentation de projet typique. Vous pouvez utiliser l’assistance d’application, HierUtil7, pour créer les objets sous-jacents et d’autres éléments de programmation. Pour plus d’informations sur l’assistance d’application HierUtil7, consultez Utiliser les classes de projet HierUtil7 pour implémenter un type de projet (C++).

    Graphique de modèle de projet Visual Studio

    modèle de projet

    Pour plus d’informations sur les interfaces et les services énumérés dans le diagramme précédent, ainsi que sur d’autres interfaces facultatives non incluses dans le diagramme, consultez Composants de base du modèle de projet.

    Les projets peuvent prendre en charge des commandes et doivent donc implémenter l’interface IOleCommandTarget pour participer au routage des commandes via les GUID de contexte de commande.