IVsParentProject Interface

Définition

Permet à l'environnement d'ouvrir et de fermer les projets imbriqués dans le bon ordre avec la build de la hiérarchie de solution.

public interface class IVsParentProject
public interface class IVsParentProject
__interface IVsParentProject
[System.Runtime.InteropServices.Guid("79001CD1-69C6-45B8-8F7A-DCCCE0469E8D")]
[System.Runtime.InteropServices.InterfaceType(1)]
public interface IVsParentProject
[<System.Runtime.InteropServices.Guid("79001CD1-69C6-45B8-8F7A-DCCCE0469E8D")>]
[<System.Runtime.InteropServices.InterfaceType(1)>]
type IVsParentProject = interface
Public Interface IVsParentProject
Attributs

Remarques

IVsParentProject contient deux méthodes, OpenChildren et CloseChildren . L’objectif de cette interface est d’autoriser l’ouverture et la fermeture des projets imbriqués dans l’ordre approprié avec la build de la hiérarchie de la solution par l’environnement. Les informations relatives aux projets imbriqués sont contenues dans le fichier projet pour chaque projet parent.

L’implémentation des méthodes doit déclencher les événements correspondants, IVsSolutionEvents3 OnBeforeOpeningChildren et OnAfterOpeningChildren dans la OpenChildren méthode et OnBeforeClosingChildren et dans la OnAfterClosingChildren CloseChildren méthode.

L’ordre d’ouverture de la solution est le suivant.

Pour chaque projet de niveau supérieur dans la solution :

  • L’environnement crée le projet en appelant la CreateProject

  • L’environnement ajoute le projet à Explorateur de solutions.

  • L’environnement vérifie si le projet est un projet parent en interrogeant la hiérarchie de projet pour IVsParentProject .

  • Si le projet prend en charge IVsParentProject , l’environnement appelle la OpenChildren méthode du projet. Au cours de cette méthode, le projet se déclenche OnBeforeOpeningChildren et, pour chaque projet enfant (imbriqué) :

    • Le projet parent appelle AddVirtualProjectEx .

    • La méthode est déclenchée OnAfterOpenProject pour le projet enfant.

    • L’environnement vérifie si le projet enfant est également un projet parent en interrogeant la hiérarchie du projet enfant pour IvsParentProject .

    • Si le projet enfant est également un projet parent :

    • L’environnement appelle son OpenChildren .

    • Le projet est déclenché OnAfterOpeningChildren .

    • La solution est déclenchée OnAfterOpenProject .

    • La solution se déclenche OnAfterOpenSolution (si une solution est chargée avec succès).

L’ordre de fermeture de la solution est le suivant :

  • Pour chaque projet de niveau supérieur dans la solution, l’environnement appelle la méthode du projet QueryClose . Dans cette méthode, le projet appelle QueryClose sur tous ses enfants.

  • Pour chaque projet de niveau supérieur dans la solution, l’environnement est déclenché OnBeforeCloseProject pour le projet.

  • Pour chaque projet de niveau supérieur dans la solution, l’environnement vérifie si le projet est un projet parent en interrogeant la hiérarchie de projet pour IVsParentProject

  • Pour chaque projet de niveau supérieur dans la solution, si le projet prend en charge IVsParentProject , l’environnement appelle CloseChildren . Au cours de cette méthode, le projet se déclenche OnBeforeClosingChildren et, pour chaque projet enfant (imbriqué) :

    • Le projet parent appelle RemoveVirtualProject .

    • La méthode est déclenchée OnBeforeCloseProject pour le projet enfant

    • L’environnement vérifie si le projet enfant est également un projet parent en interrogeant la hiérarchie du projet enfant pour IVsParentProject

  • Si le projet enfant est également un projet parent :

Notes pour les responsables de l’implémentation

Implémenté par les projets parents (projets qui imbriquent d’autres projets) pour contrôler l’ouverture et la fermeture des projets imbriqués (enfants).

Méthodes

CloseChildren()

Implémenté pour fermer les projets imbriqués sous un projet parent.

OpenChildren()

Implémenté pour ouvrir les projets imbriqués sous un projet parent.

S’applique à