DEFCONTEXTMENU-Struktur (shlobj_core.h)

Enthält Kontextmenüinformationen, die von SHCreateDefaultContextMenu verwendet werden.

Syntax

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;

Member

hwnd

Typ: HWND

Ein Handle für das Kontextmenü. Legen Sie dieses Element auf das von CreateMenu zurückgegebene Handle fest.

pcmcb

Typ: IContextMenuCB*

Ein Zeiger auf die IContextMenuCB-Schnittstelle , die vom Rückrufobjekt unterstützt wird. Dieser Wert ist optional und kann NULL sein.

pidlFolder

Typ: PCIDLIST_ABSOLUTE

Die PIDL des Ordners, der die ausgewählten Dateiobjekte enthält, oder des Ordners des Kontextmenüs, wenn keine Dateiobjekte ausgewählt sind. Dieser Wert ist optional und kann NULL sein. In diesem Fall wird die PIDL aus dem psf-Member berechnet.

psf

Typ: IShellFolder*

Ein Zeiger auf die IShellFolder-Schnittstelle des Ordnerobjekts, das die ausgewählten Dateiobjekte enthält, oder auf den Ordner, der das Kontextmenü enthält, wenn keine Dateiobjekte ausgewählt sind.

cidl

Typ: UINT

Die Anzahl der Elemente in der Member-APIDL.

apidl

Typ: PCUITEMID_CHILD_ARRAY

Ein Zeiger auf ein konstantes Array von ITEMIDLIST-Strukturen . Jeder Eintrag im Array beschreibt ein untergeordnetes Element, auf das das Kontextmenü angewendet wird, für instance eine ausgewählte Datei, die der Benutzer öffnen möchte.

punkAssociationInfo

Typ: IUnknown*

Ein Zeiger auf die IQueryAssociations-Schnittstelle für das Objekt, aus dem Erweiterungen geladen werden sollen. Dieser Parameter ist optional und kann daher NULL sein. Wenn dieser Wert NULL ist und die Member aKeys und cKeys ebenfalls NULL sind (siehe Hinweise), wird punkAssociationInfo aus dem apidl-Member und cidl über eine Anforderung für IQueryAssociations über IShellFolder::GetUIObjectOf berechnet.

Wenn IShellFolder::GetUIObjectOfE_NOTIMPL zurückgibt, wird eine Standardimplementierung basierend auf den SFGAO_FOLDER und SFGAO_FILESYSTEM Attributen bereitgestellt, die von IShellFolder::GetAttributesOf zurückgegeben werden.

cKeys

Typ: UINT

Die Anzahl der Elemente in Member aKeys. Dieser Wert kann auch 0 sein. Wenn der Wert 0 ist, werden die Erweiterungen basierend auf dem Objekt geladen, das die Schnittstelle IQueryAssociations unterstützt, wie vom Member punkAssociationInfo angegeben. Wenn der Wert ungleich NULL ist, werden die Erweiterungen nur basierend auf Member aKeys und nicht auf Member punkAssociationInfo geladen.

Hinweis Die maximale Anzahl von Schlüsseln beträgt 16. Aufrufer müssen diesen Grenzwert erzwingen, da dies von der API nicht der Fall ist. Andernfalls kann dies zu einer Speicherbeschädigung führen.
 

aKeys

Typ: const HKEY*

Ein Zeiger auf einen HKEY, der den Registrierungsschlüssel angibt, aus dem Erweiterungen geladen werden sollen. Dieser Parameter ist optional und kann NULL sein. Wenn der Wert NULL ist, werden die Erweiterungen basierend auf dem Objekt geladen, das die Schnittstelle IQueryAssociations unterstützt, wie in punkAssociationInfo angegeben.

Hinweise

Wenn die Member aKeys und cKeys gültig sind und das Element punkAssociationInfo ebenfalls gültig ist (nicht NULL), erstellt das System das Menü mit den Werten von aKeys und cKeys und ignoriert member punkAssociationInfo (IQueryAssociations).

Die Member apidl und cidl können als Parameter für die Methode IShellFolder::GetUIObjectOf verwendet werden, um IDataObject abzurufen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile shlobj_core.h (shlobj.h einschließen)