Structure CMINVOKECOMMANDINFO (shobjidl_core.h)
Contient les informations nécessaires à IContextMenu::InvokeCommand pour appeler une commande de menu contextuel.
Syntaxe
typedef struct _CMINVOKECOMMANDINFO {
DWORD cbSize;
DWORD fMask;
HWND hwnd;
LPCSTR lpVerb;
LPCSTR lpParameters;
LPCSTR lpDirectory;
int nShow;
DWORD dwHotKey;
HANDLE hIcon;
} CMINVOKECOMMANDINFO;
Membres
cbSize
Type : DWORD
Taille de cette structure, en octets.
fMask
Type : DWORD
Zéro, ou un ou plusieurs des indicateurs suivants.
CMIC_MASK_HOTKEY
Le membre dwHotKey est valide.
CMIC_MASK_ICON
Le membre hIcon est valide. À partir de Windows Vista, cet indicateur n’est pas utilisé.
CMIC_MASK_FLAG_NO_UI
Le système ne peut pas afficher des éléments d’interface utilisateur (par exemple, des messages d’erreur) lors de l’exécution d’une commande.
CMIC_MASK_NO_CONSOLE
Si un gestionnaire de menu contextuel doit créer un processus, il crée normalement une console. La définition de l’indicateur CMIC_MASK_NO_CONSOLE supprime la création d’une console.
CMIC_MASK_FLAG_SEP_VDM
Cet indicateur est valide uniquement lorsqu’il fait référence à une application Windows 16 bits. S’il est défini, l’application vers laquelle le raccourci pointe s’exécute dans une machine virtuelle DOS privée (VDM). Consultez la section Notes.
CMIC_MASK_ASYNCOK
Attendez que la conversation DDE se termine avant de revenir.
CMIC_MASK_NOASYNC
Windows Vista et versions ultérieures. L’implémentation de IContextMenu::InvokeCommand doit être synchrone et ne doit pas être retournée avant d’être terminée. Étant donné que cela est recommandé, les applications appelantes qui spécifient cet indicateur ne peuvent pas garantir que cette requête sera respectée si elles ne sont pas familiarisées avec l’implémentation du verbe qu’elles appellent.
CMIC_MASK_SHIFT_DOWN
La touche Maj est enfoncée. Utilisez cette option au lieu d’interroger l’état actuel du clavier qui a peut-être changé depuis l’appel du verbe.
CMIC_MASK_CONTROL_DOWN
Appuyez sur la touche Ctrl. Utilisez cette option au lieu d’interroger l’état actuel du clavier qui a peut-être changé depuis l’appel du verbe.
CMIC_MASK_FLAG_LOG_USAGE
Indique que l’implémentation de IContextMenu::InvokeCommand peut vouloir effectuer le suivi de l’élément appelé pour des fonctionnalités telles que le menu « Documents récents ».
CMIC_MASK_NOZONECHECKS
N’effectuez pas de case activée de zone. Cet indicateur permet à ShellExecuteEx de contourner la vérification de zone mise en place par IAttachmentExecute.
hwnd
Type : HWND
Handle de la fenêtre propriétaire du menu contextuel. Une extension peut également utiliser ce handle comme propriétaire de toutes les boîtes de message ou boîtes de dialogue qu’elle affiche.
lpVerb
Type : LPCSTR
Adresse d’une chaîne terminée par null qui spécifie le nom indépendant de la langue de la commande à exécuter. Ce membre est généralement une chaîne lorsqu’une commande est activée par une application. Le système fournit des valeurs constantes prédéfinies pour les chaînes de commande suivantes.
Constant | Chaîne de commande |
---|---|
CMDSTR_RUNAS | « RunAs » |
CMDSTR_PRINT | « Imprimer » |
CMDSTR_PREVIEW | « Préversion » |
CMDSTR_OPEN | « Ouvrir » |
Il ne s’agit pas d’un ensemble fixe ; de nouveaux verbes canoniques peuvent être inventés par les gestionnaires de menus contextuels et les applications peuvent les appeler.
S’il existe un verbe canonique et qu’un gestionnaire de menu n’implémente pas le verbe canonique, il doit retourner un code d’échec pour permettre au gestionnaire suivant de pouvoir gérer ce verbe. Si vous ne le faites pas, les fonctionnalités du système, y compris ShellExecute, sont rompues.
Sinon, plutôt qu’un pointeur, ce paramètre peut être MAKEINTRESOURCE(offset) où offset est le décalage d’identificateur de menu de la commande à exécuter. Les implémentations peuvent utiliser la macro IS_INTRESOURCE pour détecter que cette alternative est utilisée. L’interpréteur de commandes utilise cette alternative lorsque l’utilisateur choisit une commande de menu.
lpParameters
Type : LPCSTR
Chaîne facultative contenant des paramètres passés à la commande . Le format de cette chaîne est déterminé par la commande à appeler. Ce membre est toujours NULL pour les éléments de menu insérés par une extension Shell.
lpDirectory
Type : LPCSTR
Nom de répertoire de travail facultatif. Ce membre est toujours NULL pour les éléments de menu insérés par une extension Shell.
nShow
Type : int
Ensemble de valeurs SW_ à passer à la fonction ShowWindow si la commande affiche une fenêtre ou démarre une application.
dwHotKey
Type : DWORD
Raccourci clavier facultatif à affecter à n’importe quelle application activée par la commande . Si le paramètre fMask ne spécifie pas CMIC_MASK_HOTKEY, ce membre est ignoré.
hIcon
Type : HANDLE
Icône à utiliser pour toute application activée par la commande . Si le membre fMask ne spécifie pas CMIC_MASK_ICON, ce membre est ignoré.
Remarques
Bien que la déclaration IContextMenu::InvokeCommand spécifie une structure CMINVOKECOMMANDINFO pour le paramètre pici , elle peut également accepter une structure CMINVOKECOMMANDINFOEX . Si vous implémentez cette méthode, vous devez inspecter cbSize pour déterminer la structure qui a été passée.
Configuration requise
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
En-tête | shobjidl_core.h (incluez Shobjidl.h) |