Estructura DEFCONTEXTMENU (shlobj_core.h)
Contiene información del menú contextual utilizada por SHCreateDefaultContextMenu.
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;
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.
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.
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) |