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)