Compartir a través de


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.

Nota El número máximo de claves es 16. Los autores de llamadas deben aplicar este límite, ya que la API no lo hace. Si no lo hace, puede provocar daños en la memoria.
 

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)