IVsUIHierarchy.ExecCommand(UInt32, Guid, UInt32, UInt32, IntPtr, IntPtr) Méthode

Définition

Exécute une commande sur un élément spécifique dans une fenêtre hiérarchie d'interface utilisateur, ou dans la hiérarchie elle-même.

public:
 int ExecCommand(System::UInt32 itemid, Guid % pguidCmdGroup, System::UInt32 nCmdID, System::UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut);
public int ExecCommand (uint itemid, ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut);
abstract member ExecCommand : uint32 * Guid * uint32 * uint32 * nativeint * nativeint -> int
Public Function ExecCommand (itemid As UInteger, ByRef pguidCmdGroup As Guid, nCmdID As UInteger, nCmdexecopt As UInteger, pvaIn As IntPtr, pvaOut As IntPtr) As Integer

Paramètres

itemid
UInt32

[in] Identificateur de l'élément affecté par la commande transmise à IVsUIHierarchy. Pour obtenir la liste des valeurs itemid, consultez VSITEMID. Pour la sélection unique, cette valeur est l'ID actuel de l'élément. Pour les sélections multiples, attribuez à itemid la valeur de VSITEMID_SELECTION.

pguidCmdGroup
Guid

[in, unique] Identificateur unique du groupe de commandes ; peut être null pour spécifier le groupe standard. Toutes les commandes passées dans nCmdID doivent appartenir au groupe spécifié par pguidCmdGroup

nCmdID
UInt32

[in] Commande à exécuter. Cette commande doit appartenir au groupe spécifié avec pguidCmdGroup.

nCmdexecopt
UInt32

dans Les valeurs décrivent comment l’objet doit exécuter la commande. [1 | 1] valeur nCmdexecopt [1 | 2] valeur [1 | 3] Description [2 | 1] OLECMDEXECOPT_DODEFAULT [2 | 2] 0 [2 | 3] Invitez l’utilisateur à entrer des données, en fonction du comportement par défaut [3 | 1] OLECMDEXECOPT_PROMPTUSER [3 | 2] 1 [3 | 3] exécutez la commande après avoir obtenu l’entrée utilisateur. [ 4 | 1] OLECMDEXECOPT_DONTPROMPTUSER [4 | 2] 2 [4 | 3] exécute la commande sans inviter l’utilisateur. Par exemple, cliquer sur le bouton Imprimer de la barre d'outils déclenche l'impression immédiate du document, sans autre intervention de l'utilisateur. [5 | 1] OLECMDEXECOPT_SHOWHELP [5 | 2] 3 [5 | 3] affiche l’aide pour la commande correspondante, mais ne s’exécute pas.

pvaIn
IntPtr

[in, unique] Pointeur vers une structure VARIANTARG contenant les arguments d'entrée. Peut être null.

pvaOut
IntPtr

[in, out, unique] Structure VARIANTARG qui reçoit la sortie de commande. Peut être null.

Retours

Int32

Si la méthode réussit, retourne S_OK. En cas d'échec, retourne un code d'erreur.

Remarques

Signature COM

À partir de vsshell. idl :

HRESULT IVsUIHierarchy::ExecCommand(  
   [in] VSITEMID itemid,  
   [in, unique] const GUID * pguidCmdGroup,  
   [in] DWORD nCmdID,  
   [in] DWORD nCmdexecopt,  
   [in, unique] VARIANT * pvaIn,  
   [in, out, unique]VARIANT* pvaOut  
);  

Cette méthode est similaire à la Exec méthode, à ceci près que la Exec méthode ne prend pas en charge les hiérarchies, tandis que la IVsUIHierarchy.ExecCommand méthode comprend le paramètre ItemId, qui identifie l’élément de hiérarchie auquel la commande s’applique.

L’environnement s’exécute IVsUIHierarchy.ExecCommand lorsque la fenêtre hiérarchie d’interface utilisateur a le focus. La fenêtre hiérarchie d’interface utilisateur délègue toutes les commandes de menu ou de barre d’outils à l' UIHierarchy objet qui est le parent commun pour la sélection. Cela fournit UIHierarchy à l’objet la possibilité de gérer les commandes qui s’appliquent uniquement lorsque la fenêtre de hiérarchie d’interface utilisateur a le focus. Les commandes Delete et Remove en sont des exemples. Ces commandes ne doivent pas être gérées par le biais de Exec . Le IOleCommandTarget du projet actif est inclus dans le routage de commandes habituel de l’environnement, même lorsqu’une autre fenêtre (par exemple, une fenêtre de document) a le focus. Pour gérer Delete et Remove pour un projet, utilisez IVsHierarchyDeleteHandler .

Si la fenêtre hiérarchie d’interface utilisateur n’est pas la fenêtre active, mais qu’il s’agit toujours de la hiérarchie Active, ce qui signifie qu’il s’agit de la dernière hiérarchie qui a été sélectionnée, toutes les commandes qui impliquent la hiérarchie Active sont envoyées par le biais IOleCommandTarget de l’interface au lieu de l' IVsUIHierarchy interface. Par exemple, si la sélection est modifiée de la Explorateur de solutions à la liste des tâches, la Explorateur de solutions est la hiérarchie Active, mais la fenêtre active est la liste des tâches. Dans ce cas, toutes les commandes associées à la hiérarchie Active, telles que l’ajout d’un élément au projet, sont envoyées par le biais de l' IOleCommandTarget interface.

Les commandes telles que l’ajout d’un élément de projet ne doivent pas être gérées par les IVsUIHierarchy méthodes, car elles ne seront pas disponibles à partir de l’extérieur de la fenêtre de hiérarchie. Utilisez uniquement IVsUIHierarchy pour gérer les commandes qui requièrent que la fenêtre hiérarchie d’interface utilisateur ait le focus, ou qui agissent sur un élément spécifique dans la hiérarchie.

Le groupe de commandes VSConstants.VsUIHierarchyWindowCmdIds est utilisé pour gérer les manipulations d’interface utilisateur directes dans la fenêtre hiérarchie d’interface utilisateur.

VSHPROPID_EditLabel doit être pris en charge dans GetProperty et pour que la SetProperty modification du nom de l’élément soit activée.

Les commandes standard suivantes doivent être gérées uniquement à l’aide de l' IVsUIHierarchy interface :

// {5efc7975-14bc-11cf-9b2b-00aa00573819}

DEFINE_GUID(CLSID_StandardCommandSet97, 0x5efc7975, 0x14bc, 0x11cf, 0x9b, 0x2b, 0x00, 0xaa, 0x00, 0x57, 0x38, 0x19);

#define cmdidCopy 15

#define cmdidCut 16

#define cmdidDelete 17

#define cmdidPaste 26

#define cmdidRemove 168

#define cmdidRename 150

S’applique à