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) |