Estructura DEFCONTEXTMENU (shlobj_core.h)
Contiene información del menú contextual utilizada por SHCreateDefaultContextMenu.
Sintaxis
typedef struct {
HWND hwnd;
IContextMenuCB *pcmcb;
PCIDLIST_ABSOLUTE pidlFolder;
IShellFolder *psf;
UINT cidl;
PCUITEMID_CHILD_ARRAY apidl;
IUnknown *punkAssociationInfo;
UINT cKeys;
const HKEY *aKeys;
} DEFCONTEXTMENU;
Miembros
hwnd
Tipo: HWND
Identificador del menú contextual. Establezca este miembro en el identificador devuelto de CreateMenu.
pcmcb
Tipo: IContextMenuCB*
Puntero a la interfaz IContextMenuCB compatible con el objeto de devolución de llamada. Este valor es opcional y puede ser NULL.
pidlFolder
Tipo: PCIDLIST_ABSOLUTE
PIDL de la carpeta que contiene los objetos de archivo seleccionados o la carpeta del menú contextual si no se selecciona ningún objeto de archivo. Este valor es opcional y puede ser NULL, en cuyo caso el PIDL se calcula desde el miembro psf .
psf
Tipo: IShellFolder*
Puntero a la interfaz IShellFolder del objeto de carpeta que contiene los objetos de archivo seleccionados o la carpeta que contiene el menú contextual si no se selecciona ningún objeto de archivo.
cidl
Tipo: UINT
Recuento de elementos en apidl miembro.
apidl
Tipo: PCUITEMID_CHILD_ARRAY
Puntero a una matriz constante de estructuras ITEMIDLIST . Cada entrada de la matriz describe un elemento secundario al que se aplica el menú contextual, por ejemplo, un archivo seleccionado que el usuario quiere abrir.
punkAssociationInfo
Tipo: IUnknown*
Puntero a la interfaz IQueryAssociations en el objeto desde el que se van a cargar extensiones. Este parámetro es opcional y, por tanto, puede ser NULL. Si este valor es NULL y los miembros aKeys y cKeys también son NULL (vea Comentarios), punkAssociationInfo se calcula desde el miembro apidl y cidl a través de una solicitud de IQueryAssociations a través de IShellFolder::GetUIObjectOf.
Si IShellFolder::GetUIObjectOf devuelve E_NOTIMPL, se proporciona una implementación predeterminada basada en los atributos SFGAO_FOLDER y SFGAO_FILESYSTEM devueltos de IShellFolder::GetAttributesOf.
cKeys
Tipo: UINT
Recuento de elementos de miembro aKeys. Este valor puede ser cero. Si el valor es cero, las extensiones se cargan en función del objeto que admite la interfaz IQueryAssociations , tal y como especifica el miembro punkAssociationInfo. Si el valor no es NULL, las extensiones se cargan solo en miembros aKeys y no en punkAssociationInfo.
aKeys
Tipo: const HKEY*
Puntero a un HKEY que especifica la clave del Registro desde la que se van a cargar extensiones. Este parámetro es opcional y puede ser NULL. Si el valor es NULL, las extensiones se cargan en función del objeto que admite la interfaz IQueryAssociations como se especifica en punkAssociationInfo.
Comentarios
Si los miembros aKeys y cKeys son válidos y el miembro punkAssociationInfo también es válido (no NULL), el sistema construye el menú con los valores de aKeys y cKeys, y omite el miembro punkAssociationInfo (IQueryAssociations).
Los miembros apidl y cidl se pueden usar como parámetros para método IShellFolder::GetUIObjectOf para recuperar IDataObject.
Requisitos
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) |