Compartir a través de


Estructura CMINVOKECOMMANDINFO (shobjidl_core.h)

Contiene información necesaria para que IContextMenu::InvokeCommand invoque un comando de menú contextual.

Sintaxis

typedef struct _CMINVOKECOMMANDINFO {
  DWORD  cbSize;
  DWORD  fMask;
  HWND   hwnd;
  LPCSTR lpVerb;
  LPCSTR lpParameters;
  LPCSTR lpDirectory;
  int    nShow;
  DWORD  dwHotKey;
  HANDLE hIcon;
} CMINVOKECOMMANDINFO;

Miembros

cbSize

Tipo: DWORD

Tamaño de esta estructura, en bytes.

fMask

Tipo: DWORD

Cero o una o varias de las marcas siguientes.

CMIC_MASK_HOTKEY

El miembro dwHotKey es válido.

CMIC_MASK_ICON

El miembro hIcon es válido. A partir de Windows Vista, esta marca no se usa.

CMIC_MASK_FLAG_NO_UI

Se impide que el sistema muestre elementos de la interfaz de usuario (por ejemplo, mensajes de error) mientras se lleva a cabo un comando.

CMIC_MASK_NO_CONSOLE

Si un controlador de menú contextual necesita crear un nuevo proceso, normalmente creará una nueva consola. Al establecer la marca CMIC_MASK_NO_CONSOLE se suprime la creación de una nueva consola.

CMIC_MASK_FLAG_SEP_VDM

Esta marca solo es válida cuando se hace referencia a una aplicación basada en Windows de 16 bits. Si se establece, la aplicación a la que apunta el acceso directo se ejecuta en una máquina VIRTUAL DOS privada (VDM). Vea la sección Comentarios.

CMIC_MASK_ASYNCOK

Espere a que la conversación DDE finalice antes de devolverla.

CMIC_MASK_NOASYNC

Windows Vista y versiones posteriores. La implementación de IContextMenu::InvokeCommand debe ser sincrónica, no devolver antes de que se complete. Puesto que se recomienda, llamar a las aplicaciones que especifican esta marca no puede garantizar que esta solicitud se respetará si no están familiarizados con la implementación del verbo que invocan.

CMIC_MASK_SHIFT_DOWN

Se presiona la tecla MAYÚS. Úselo en lugar de sondear el estado actual del teclado que puede haber cambiado desde que se invocó el verbo.

CMIC_MASK_CONTROL_DOWN

Se presiona la tecla CTRL. Úselo en lugar de sondear el estado actual del teclado que puede haber cambiado desde que se invocó el verbo.

CMIC_MASK_FLAG_LOG_USAGE

Indica que la implementación de IContextMenu::InvokeCommand puede querer realizar un seguimiento del elemento que se está invocando para características como el menú "Documentos recientes".

CMIC_MASK_NOZONECHECKS

No realice una comprobación de zona. Esta marca permite que ShellExecuteEx omita la comprobación de zona puesta en marcha por IAttachmentExecute.

hwnd

Tipo: HWND

Identificador de la ventana que es el propietario del menú contextual. Una extensión también puede usar este identificador como propietario de cualquier cuadro de mensaje o cuadros de diálogo que muestre.

lpVerb

Tipo: LPCSTR

Dirección de una cadena terminada en NULL que especifica el nombre independiente del lenguaje del comando que se va a llevar a cabo. Este miembro suele ser una cadena cuando una aplicación activa un comando. El sistema proporciona valores constantes predefinidos para las siguientes cadenas de comandos.

Constante Cadena de comandos
CMDSTR_RUNAS "RunAs"
CMDSTR_PRINT "Imprimir"
CMDSTR_PREVIEW "Versión preliminar"
CMDSTR_OPEN "Abrir"
 

Esto no es un conjunto fijo; Los nuevos verbos canónicos se pueden inventar mediante controladores de menú contextual y las aplicaciones pueden invocarlos.

Si existe un verbo canónico y un controlador de menús no implementa el verbo canónico, debe devolver un código de error para permitir que el controlador siguiente pueda controlar este verbo. Si no lo hace, se interrumpirá la funcionalidad en el sistema, incluido ShellExecute.

Como alternativa, en lugar de un puntero, este parámetro puede ser MAKEINTRESOURCE(offset) donde offset es el desplazamiento del identificador de menú del comando que se va a llevar a cabo. Las implementaciones pueden usar la macro IS_INTRESOURCE para detectar que se está utilizando esta alternativa. El Shell usa esta alternativa cuando el usuario elige un comando de menú.

lpParameters

Tipo: LPCSTR

Cadena opcional que contiene parámetros que se pasan al comando. El formato de esta cadena viene determinado por el comando que se va a invocar. Este miembro siempre es NULL para los elementos de menú insertados por una extensión de Shell.

lpDirectory

Tipo: LPCSTR

Un nombre de directorio de trabajo opcional. Este miembro siempre es NULL para los elementos de menú insertados por una extensión de Shell.

nShow

Tipo: int

Un conjunto de SW_ valores que se van a pasar a la función ShowWindow si el comando muestra una ventana o inicia una aplicación.

dwHotKey

Tipo: DWORD

Método abreviado de teclado opcional para asignar a cualquier aplicación activada por el comando . Si el parámetro fMask no especifica CMIC_MASK_HOTKEY, se omite este miembro.

hIcon

Tipo: HANDLE

Icono que se va a usar para cualquier aplicación activada por el comando . Si el miembro fMask no especifica CMIC_MASK_ICON, este miembro se omite.

Comentarios

Aunque la declaración IContextMenu::InvokeCommand especifica una estructura CMINVOKECOMMANDINFO para el parámetro pici , también puede aceptar una estructura CMINVOKECOMMANDINFOEX . Si va a implementar este método, debe inspeccionar cbSize para determinar qué estructura se ha pasado.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado shobjidl_core.h (include Shobjidl.h)