Estructura DFMICS (shlobj_core.h)
Contiene argumentos adicionales usados por DFM_INVOKECOMMANDEX.
Sintaxis
typedef struct {
DWORD cbSize;
DWORD fMask;
LPARAM lParam;
UINT idCmdFirst;
UINT idDefMax;
LPCMINVOKECOMMANDINFO pici;
IUnknown *punkSite;
} DFMICS, *PDFMICS;
Miembros
cbSize
Tipo: DWORD
Tamaño de esta estructura, en bytes.
fMask
Tipo: DWORD
Cero, o una o varias de las marcas siguientes que especifican cómo controlar los datos en la estructura CMINVOKECOMMANDINFO o CMINVOKECOMMANDINFOEX apuntada por pici.
CMIC_MASK_HOTKEY
El miembro dwHotKey es válido.
CMIC_MASK_ICON
No se usa.
CMIC_MASK_FLAG_NO_UI
La implementación de IContextMenu::InvokeCommand no puede mostrar elementos de la interfaz de usuario (por ejemplo, mensajes de error) mientras se lleva a cabo un comando.
CMIC_MASK_UNICODE
Se usa solo cuando pici apunta a una estructura CMINVOKECOMMANDINFOEX . Indica que el controlador de menú contextual debe usar miembros lpVerbW, lpParametersW, lpTitleW y lpDirectoryW en lugar de sus equivalentes ANSI. Dado que es posible que algunos controladores de menú contextual no admitan Unicode, también debe pasar cadenas ANSI válidas en los miembros lpVerb, lpParameters, lpTitleW y lpDirectory .
CMIC_MASK_NO_CONSOLE
Si un controlador de menú contextual necesita crear un nuevo proceso, normalmente crea 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
La implementación de IContextMenu::InvokeCommand puede poner en marcha un nuevo subproceso o proceso para controlar la llamada y no es necesario bloquear la finalización de la función que se está invocando. Por ejemplo, si el verbo es "delete", la llamada IContextMenu::InvokeCommand puede devolver antes de que se hayan eliminado todos los elementos. Puesto que se trata de un aviso, 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_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 esto 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 están invocando.
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 podría querer realizar un seguimiento del elemento que se invoca 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.
CMIC_MASK_PTINVOKE
Se usa solo cuando pici apunta a una estructura CMINVOKECOMMANDINFOEX . El miembro ptInvoke es válido.
lParam
Tipo: LPARAM
Puntero a una cadena terminada en null que contiene argumentos adicionales para el comando de menú seleccionado. Este miembro puede ser NULL.
idCmdFirst
Tipo: UINT
Valor mínimo que el controlador puede especificar para un identificador de elemento de menú.
idDefMax
Tipo: UINT
Valor máximo que el controlador puede especificar para un identificador de elemento de menú.
pici
Tipo: LPCMINVOKECOMMANDINFO
Puntero a una estructura CMINVOKECOMMANDINFO o CMINVOKECOMMANDINFO .
punkSite
Tipo: IUnknown*
Puntero al sitio del controlador de menú contextual.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Encabezado | shlobj_core.h (incluya Shlobj.h) |