Implémenter la gestion de commande pour les projets imbriqués
L'IDE peut passer des commandes qui sont passées via IVsUIHierarchy et les interfaces d' IOleCommandTarget aux projets imbriqués, ou les projets parents peuvent filtrer ou remplacer des commandes.
Notes
Seuls les commandes d'habitude gérées par le projet parent peuvent être filtrées.Les commandes telles qu' Build et Deploy gérées par l'IDE ne peuvent pas être filtrées.
les étapes suivantes décrivent le processus pour implémenter la gestion de commande.
Procédures
pour implémenter la gestion de commande
Lorsque l'utilisateur sélectionne un projet imbriqué ou un nœud dans un projet imbriqué :
- L'IDE appelle la méthode d' QueryStatus .
– ou –
- Si la commande provenait d'une fenêtre hiérarchie, telle qu'une commande de menu contextuel dans l'explorateur de solutions, l'IDE appelle la méthode d' QueryStatusCommand sur le parent du projet.
Le projet parent peut examiner les paramètres à passer à QueryStatus, tel qu' pguidCmdGroup et prgCmds, déterminer si le projet parent doit filtrer les commandes. Si le projet parent est implémenté de filtrer les commandes, il doit définir :
prgCmds[0].cmdf = OLECMDF_SUPPORTED; // make sure it is disabled prgCmds[0].cmdf &= ~MSOCMDF_ENABLED;
Le projet parent doit retourner S_OK.
Si le projet parent ne filtre pas la commande, il doit simplement retourner S_OK. Dans ce cas, l'IDE itinéraire automatiquement la commande au projet enfant.
Le projet parent ne doit pas le routage la commande au projet enfant. L'IDE exécute cette tâche.