Mise en œuvre de la gestion des commandes pour les projets imbriquésImplementing Command Handling for Nested Projects

L’IDE peut transmettre des commandes qui sont transmises via le IVsUIHierarchy et IOleCommandTarget interfaces pour les projets imbriqués ou des projets parents peuvent filtrer ou remplacer les commandes.The IDE can pass commands that are passed through the IVsUIHierarchy and the IOleCommandTarget interfaces to nested projects, or parent projects can filter or override the commands.

Note

Seules les commandes habituellement gérées par le projet parent peuvent être filtrés.Only commands ordinarily handled by the parent project can be filtered. Commandes telles que générer et déployer qui sont gérés par l’IDE ne peuvent pas être filtrée.Commands such as Build and Deploy that are handled by the IDE cannot be filtered.

Les étapes suivantes décrivent le processus d’implémentation de la gestion des commandes.The following steps describe the process for implementing command handling.

ProcéduresProcedures

Pour implémenter la gestion des commandesTo implement command handling

  1. Lorsque l’utilisateur sélectionne un projet imbriqué ou un nœud dans un projet imbriqué :When the user selects a nested project or a node in a nested project:

    1. Les appels de l’IDE le QueryStatus (méthode).The IDE calls the QueryStatus method.

      — ou —— or —

    2. Si l’origine de la commande dans une fenêtre de la hiérarchie, telle qu’une commande de menu contextuel dans l’Explorateur de solutions, l’IDE appelle la QueryStatusCommand méthode sur les parents du projet.If the command originated in a hierarchy window, such as a shortcut menu command in Solution Explorer, the IDE calls the QueryStatusCommand method on the project's parent.

  2. Le projet parent peut examiner les paramètres à passer au QueryStatus, tel que pguidCmdGroup et prgCmds, afin de déterminer si le projet parent doit filtrer les commandes.The parent project can examine parameters to be passed to QueryStatus, such as pguidCmdGroup and prgCmds, to determine whether the parent project should filter the commands. Si le projet parent est implémenté pour filtrer les commandes, il doit définir :If the parent project is implemented to filter commands, it should set:

    prgCmds[0].cmdf = OLECMDF_SUPPORTED;  
    // make sure it is disabled  
    prgCmds[0].cmdf &= ~MSOCMDF_ENABLED;  
    

    Ensuite, le projet parent doit retourner S_OK.Then the parent project should return S_OK.

    Si le projet parent ne filtre pas la commande, elle doit simplement retourner S_OK.If the parent project does not filter the command, it should just return S_OK. Dans ce cas, l’IDE achemine automatiquement la commande au projet enfant.In this case, the IDE automatically routes the command to the child project.

    Le projet parent n’a pas à acheminer la commande au projet enfant.The parent project does not have to route the command to the child project. L’IDE exécute cette tâche...The IDE performs this task..

Voir aussiSee Also

IVsUIHierarchy
Commandes, Menus et barres d’outils Commands, Menus, and Toolbars
Imbriquer des projetsNesting Projects