Método IContextMenu::InvokeCommand (shobjidl_core.h)
Lleva a cabo el comando asociado a un elemento de menú contextual.
Sintaxis
HRESULT InvokeCommand(
CMINVOKECOMMANDINFO *pici
);
Parámetros
pici
Tipo: LPCMINVOKECOMMANDINFO
Puntero a una estructura CMINVOKECOMMANDINFO o CMINVOKECOMMANDINFOEX que contiene detalles sobre el comando.
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
La interfaz IContextMenu se exporta mediante varios controladores de extensión de Shell y extensiones de espacio de nombres. Se usa para agregar comandos a los menús contextuales. Cuando el usuario selecciona uno de los comandos que el controlador o la extensión de espacio de nombres agrega a un menú contextual, el Shell llama al método InvokeCommand del comando. El comando se puede especificar mediante su desplazamiento del identificador de menú, definido cuando se llamó a IContextMenu::QueryContextMenu o por su verbo asociado. Una aplicación puede invocar este método directamente obteniendo un puntero a la interfaz IContextMenu de un objeto. Una aplicación también puede invocar este método indirectamente llamando a ShellExecute o ShellExecuteEx y especificando un verbo compatible con la extensión o el controlador del espacio de nombres.
Nota para los usuarios
Aunque el parámetro pici se declara en Shlobj.h como una estructura CMINVOKECOMMANDINFO , puede usar CMINVOKECOMMANDINFO o CMINVOKECOMMANDINFOEX. Ambas funcionarán para cadenas ANSI, pero debe usar una estructura CMINVOKECOMMANDINFOEX para cadenas Unicode.Notas para los implementadores
Compruebe el miembro cbSize de pici para determinar en qué estructura (CMINVOKECOMMANDINFO o CMINVOKECOMMANDINFOEX) se pasó. Si es una estructura CMINVOKECOMMANDINFOEX y el miembro fMask tiene establecida la marca CMIC_MASK_UNICODE , debe convertir pici a CMINVOKECOMMANDINFOEX para usar la información Unicode contenida en los cinco últimos miembros de la estructura.Si el verbo, especificado por un nombre de verbo canónico o el identificador de comando no lo reconoce el controlador de menú contextual, debe devolver un error (E_FAIL) para que el verbo pueda pasarse a otros controladores de menú contextual que puedan implementarlo.
A partir de Windows Vista, no es suficiente invocar el comando de forma asincrónica simplemente estableciendo la marca CMIC_MASK_ASYNCOK en el miembro fMask de la estructura CMINVOKECOMMANDINFOINFO o CMINVOKECOMMANDINFOEX . También debe establecer una referencia de subproceso en el subproceso que realiza la llamada, como se explica en Administración de referencias de subprocesos.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shobjidl_core.h (include Shobjidl.h) |
Archivo DLL | Shell32.dll (versión 4.0 o posterior) |