Structure DEFCONTEXTMENU (shlobj_core.h)
Contient des informations de menu contextuel utilisées par SHCreateDefaultContextMenu.
Syntaxe
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;
Membres
hwnd
Type : HWND
Handle du menu contextuel. Définissez ce membre sur le handle retourné par CreateMenu.
pcmcb
Type : IContextMenuCB*
Pointeur vers l’interface IContextMenuCB prise en charge par l’objet de rappel. Cette valeur est facultative et peut être NULL.
pidlFolder
Type : PCIDLIST_ABSOLUTE
PIDL du dossier qui contient le ou les objets de fichier sélectionnés ou le dossier du menu contextuel si aucun objet fichier n’est sélectionné. Cette valeur est facultative et peut être NULL, auquel cas le PIDL est calculé à partir du membre psf .
psf
Type : IShellFolder*
Pointeur vers l’interface IShellFolder de l’objet folder qui contient les objets fichier sélectionnés, ou vers le dossier qui contient le menu contextuel si aucun objet fichier n’est sélectionné.
cidl
Type : UINT
Nombre d’éléments dans le membre apidl.
apidl
Type : PCUITEMID_CHILD_ARRAY
Pointeur vers un tableau constant de structures ITEMIDLIST . Chaque entrée du tableau décrit un élément enfant auquel le menu contextuel s’applique, pour instance, un fichier sélectionné que l’utilisateur souhaite ouvrir.
punkAssociationInfo
Type : IUnknown*
Pointeur vers l’interface IQueryAssociations sur l’objet à partir duquel charger des extensions. Ce paramètre est facultatif et peut donc être NULL. Si cette valeur est NULL et que les membres aKeys et cKeys sont également NULL (voir Remarques), punkAssociationInfo est calculé à partir du membre apidl et cidl via une requête pour IQueryAssociations via IShellFolder::GetUIObjectOf.
Si IShellFolder::GetUIObjectOf renvoie E_NOTIMPL, une implémentation par défaut est fournie en fonction des attributs SFGAO_FOLDER et SFGAO_FILESYSTEM retournés par IShellFolder::GetAttributesOf.
cKeys
Type : UINT
Nombre d’éléments dans le membre aKeys. Cette valeur peut être zéro. Si la valeur est zéro, les extensions sont chargées en fonction de l’objet qui prend en charge l’interface IQueryAssociations, comme spécifié par le membre punkAssociationInfo. Si la valeur n’est pas NULL, les extensions sont chargées uniquement en fonction du membre aKeys et non du membre punkAssociationInfo.
aKeys
Type : const HKEY*
Pointeur vers une clé HKEY qui spécifie la clé de Registre à partir de laquelle charger les extensions. Ce paramètre est facultatif et peut être NULL. Si la valeur est NULL, les extensions sont chargées en fonction de l’objet qui prend en charge l’interface IQueryAssociations , comme spécifié dans punkAssociationInfo.
Remarques
Si les membres aKeys et cKeys sont valides et que le membre punkAssociationInfo est également valide (et non NULL), le système construit le menu à l’aide des valeurs aKeys et cKeys, et ignore le membre punkAssociationInfo (IQueryAssociations).
Les membres apidl et cidl peuvent être utilisés comme paramètres pour utiliser la méthode IShellFolder::GetUIObjectOf pour récupérer IDataObject.
Configuration requise
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
En-tête | shlobj_core.h (inclure Shlobj.h) |