Método IContextMenuSite::D oContextMenuPopup (shobjidl_core.h)
[DoContextMenuPopup ya no está disponible para su uso a partir de Windows Server 2003.]
Crea y muestra un menú contextual, realiza un seguimiento de la selección de elementos en ese menú e invoca un comando elegido.
Sintaxis
HRESULT DoContextMenuPopup(
[in] IUnknown *punkContextMenu,
[in] UINT fFlags,
[in] POINT pt
);
Parámetros
[in] punkContextMenu
Tipo: IUnknown*
Puntero a la implementación de IUnknown del menú contextual.
[in] fFlags
Tipo: UINT
Marcas opcionales que especifican cómo se puede cambiar el menú contextual. Este parámetro se puede establecer en cualquier combinación de los valores siguientes. El sistema reserva los bits restantes de la palabra de orden bajo. La palabra de orden superior se puede usar para las comunicaciones específicas del contexto. El valor de CMF_RESERVED se puede usar para enmascarar la palabra de orden bajo.
CMF_NORMAL (0x00000000)
0x00000000. Indica una operación normal. Una extensión de menú contextual, una extensión de espacio de nombres o un controlador de arrastrar y colocar puede agregar todos los elementos de menú.
CMF_DEFAULTONLY (0x00000001)
0x00000001. Esta marca se establece cuando el usuario activa la acción predeterminada, normalmente haciendo doble clic. Esta marca proporciona una sugerencia para que la extensión de menú contextual no agregue nada si no modifica el elemento predeterminado en el menú. Una extensión de menú contextual o un controlador de arrastrar y colocar no debe agregar ningún elemento de menú si se especifica este valor. Una extensión de espacio de nombres debe agregar solo el elemento predeterminado (si existe).
CMF_VERBSONLY (0x00000002)
0x00000002. Esta marca se establece si el menú contextual es para un objeto de método abreviado. Los controladores de menú contextual deben omitir este valor.
CMF_EXPLORE (0x00000004)
0x00000004. Esta marca se establece cuando la ventana de árbol del Explorador de Windows está presente.
CMF_NOVERBS (0x00000008)
0x00000008. Esta marca se establece para los elementos que se muestran en el menú Enviar a . Los controladores de menú contextual deben omitir este valor.
CMF_CANRENAME (0x00000010)
0x00000010. Esta marca se establece si la aplicación que realiza la llamada admite el cambio de nombre de los elementos. Una extensión de menú contextual o un controlador de arrastrar y colocar debe omitir esta marca. Si procede, una extensión de espacio de nombres debe agregar un elemento de cambio de nombre al menú.
CMF_NODEFAULT (0x00000020)
0x00000020. Esta marca se establece si no se ha establecido ningún elemento en el menú como predeterminado. Un controlador de arrastrar y colocar debe omitir esta marca. Una extensión de espacio de nombres no debe establecer ninguno de los elementos de menú en el valor predeterminado.
CMF_INCLUDESTATIC (0x00000040)
Este valor no está disponible.
Windows Server 2003 y Windows XP: 0x00000040. Esta marca se establece cuando se construye un menú estático. Solo el explorador debe usar esta marca. Todas las demás extensiones de menú contextual deben omitir esta marca.
CMF_ITEMMENU (0x00000080)
0x00000080. Esta marca se establece cuando la aplicación que realiza la llamada invoca un menú contextual en un elemento de la vista (en lugar del fondo de la vista).
Windows Server 2003 y Windows XP: Este valor no está disponible.
CMF_EXTENDEDVERBS (0x00000100)
0x00000100. Esta marca se establece cuando la aplicación que realiza la llamada quiere verbos extendidos. Los verbos normales se muestran cuando el usuario hace clic con el botón derecho en un objeto. Para mostrar verbos extendidos, el usuario debe hacer clic con el botón derecho al presionar la tecla MAYÚS.
CMF_DISABLEDVERBS (0x00000200)
0x00000200. Esta marca se establece cuando la aplicación que realiza la llamada pretende invocar verbos que, de lo contrario, están deshabilitados, como los menús heredados.
Windows Server 2003 y Windows XP: Este valor no está disponible.
CMF_ASYNCVERBSTATE (0x00000400)
0x00000400. Esta marca se establece si el estado del verbo se puede evaluar de forma asincrónica.
Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no está disponible.
CMF_OPTIMIZEFORINVOKE (0x00000800)
0x00000800. Informa a los controladores de menú contextual que no admiten la invocación de un verbo a través de un nombre de verbo canónico para omitir ese procesamiento en su implementación IContextMenu::QueryContextMenu .
Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no está disponible.
CMF_SYNCCASCADEMENU (0x00001000)
0x00001000.
Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no está disponible.
CMF_DONOTPICKDEFAULT (0x00002000)
0x00001000. Cuando no se especifica ningún verbo explícitamente, no use un verbo predeterminado en su lugar.
Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no está disponible.
CMF_RESERVED (0xffff0000)
0xffff0000. Esta marca es una máscara de bits que especifica todos los bits que no se deben usar. Esto solo se usará como máscara. No pase esto como un valor de parámetro.
[in] pt
Tipo: POINT
Ubicación donde desea que aparezca el menú contextual. Este punto especifica la ubicación de la esquina superior izquierda del menú en coordenadas de pantalla.
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.
Requisitos
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | No se admite ninguno |
Plataforma de destino | Windows |
Encabezado | shobjidl_core.h (incluya Shobjidl.h) |
Archivo DLL | Shell32.dll (versión 5.0 o posterior) |