Struttura DEFCONTEXTMENU (shlobj_core.h)

Contiene informazioni sul menu di scelta rapida usate da SHCreateDefaultContextMenu.

Sintassi

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;

Members

hwnd

Tipo: HWND

Handle nel menu di scelta rapida. Impostare questo membro sull'handle restituito da CreateMenu.

pcmcb

Tipo: IContextMenuCB*

Puntatore all'interfaccia IContextMenuCB supportata dall'oggetto callback. Questo valore è facoltativo e può essere NULL.

pidlFolder

Tipo: PCIDLIST_ABSOLUTE

PiDL della cartella contenente gli oggetti file selezionati o la cartella del menu di scelta rapida se non sono selezionati oggetti file. Questo valore è facoltativo e può essere NULL, nel qual caso il piDL viene calcolato dal membro psf .

psf

Tipo: IShellFolder*

Puntatore all'interfaccia IShellFolder dell'oggetto cartella contenente gli oggetti file selezionati o la cartella contenente il menu di scelta rapida se non sono selezionati oggetti file.

cidl

Tipo: UINT

Numero di elementi nell'apidl membro.

apidl

Tipo: PCUITEMID_CHILD_ARRAY

Puntatore a una matrice costante di strutture ITEMIDLIST . Ogni voce della matrice descrive un elemento figlio a cui si applica il menu di scelta rapida, ad esempio un file selezionato che l'utente vuole aprire.

punkAssociationInfo

Tipo: IUnknown*

Puntatore all'interfaccia IQueryAssociations nell'oggetto da cui caricare le estensioni. Questo parametro è facoltativo e può quindi essere NULL. Se questo valore è NULL e i membri aKeys e cKey sono anche NULL (vedere Osservazioni), punkAssociationInfo viene calcolato dal membro apidl e cidl tramite una richiesta di IQueryAssociations tramite IShellFolder::GetUIObjectOf.

Se IShellFolder::GetUIObjectOf restituisce E_NOTIMPL, viene fornita un'implementazione predefinita basata sugli attributi SFGAO_FOLDER e SFGAO_FILESYSTEMrestituiti da IShellFolder::GetAttributesOf.

cKeys

Tipo: UINT

Numero di elementi in aKeys membro. Il valore può essere zero. Se il valore è zero, le estensioni vengono caricate in base all'oggetto che supporta l'interfaccia IQueryAssociations come specificato dal membro punkAssociationInfo. Se il valore non è NULL, le estensioni vengono caricate solo in base a un membro aKeys e non membro punkAssociationInfo.

Nota Il numero massimo di chiavi è 16. I chiamanti devono applicare questo limite perché l'API non è. La mancata operazione può causare un danneggiamento della memoria.
 

aKeys

Tipo: const HKEY*

Puntatore a un HKEY che specifica la chiave del Registro di sistema da cui caricare le estensioni. Questo parametro è facoltativo e può essere NULL. Se il valore è NULL, le estensioni vengono caricate in base all'oggetto che supporta l'interfaccia IQueryAssociations come specificato in punkAssociationInfo.

Commenti

Se i membri aKeys e cKeys sono validi e membro punkAssociationInfo è valido (non NULL), il sistema costruisce il menu usando i valori di aKeys e cKeys e ignora il membro punkAssociationInfo (IQueryAssociations).

I membri apidl e cidl possono essere usati come parametri per il metodo IShellFolder::GetUIObjectOf per recuperare IDataObject.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Intestazione shlobj_core.h (include Shlobj.h)