Структура DEFCONTEXTMENU (shlobj_core.h)
Содержит сведения контекстного меню, используемые 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
Тип: HWND
Дескриптор контекстного меню. Задайте для этого элемента дескриптор, возвращенный из CreateMenu.
pcmcb
Тип: IContextMenuCB*
Указатель на интерфейс IContextMenuCB , поддерживаемый объектом обратного вызова. Это значение является необязательным и может иметь значение NULL.
pidlFolder
Тип: PCIDLIST_ABSOLUTE
PIDL папки, содержащей выбранные объекты файлов, или папки контекстного меню, если не выбраны никакие объекты файлов. Это значение является необязательным и может иметь значение NULL. В этом случае PIDL вычисляется из элемента PSF .
psf
Тип: IShellFolder*
Указатель на интерфейс IShellFolder объекта folder, содержащего выбранные объекты файлов, или на папку, содержащую контекстное меню, если не выбраны никакие объекты файлов.
cidl
Тип: UINT
Количество элементов в apidl элемента.
apidl
Тип: PCUITEMID_CHILD_ARRAY
Указатель на постоянный массив структур ITEMIDLIST . Каждая запись в массиве описывает дочерний элемент, к которому применяется контекстное меню, например выбранный файл, который пользователь хочет открыть.
punkAssociationInfo
Тип: IUnknown*
Указатель на интерфейс IQueryAssociations для объекта, из которого загружают расширения. Этот параметр является необязательным и поэтому может иметь значение NULL. Если это значение равно NULL , а члены aKeys и cKeys также имеют значение NULL (см. раздел Примечания), punkAssociationInfo вычисляется из элемента apidl и cidl через запрос IQueryAssociations через IShellFolder::GetUIObjectOf.
Если IShellFolder::GetUIObjectOf возвращает E_NOTIMPL, предоставляется реализация по умолчанию на основе атрибутов SFGAO_FOLDER и SFGAO_FILESYSTEM , возвращаемых из IShellFolder::GetAttributesOf.
cKeys
Тип: UINT
Количество элементов в элементе aKeys. Это значение может быть равно 0. Если значение равно нулю, расширения загружаются на основе объекта, поддерживающего интерфейс IQueryAssociations , как указано в параметре member punkAssociationInfo. Если значение не равно NULL, расширения загружаются только на основе элементов aKeys , а не punkAssociationInfo.
aKeys
Тип: const HKEY*
Указатель на ключ HKEY, указывающий раздел реестра, из которого нужно загрузить расширения. Этот параметр является необязательным и может иметь значение NULL. Если значение равно NULL, расширения загружаются на основе объекта, поддерживающего интерфейс IQueryAssociations , как указано в punkAssociationInfo.
Комментарии
Если члены aKeys и cKeys допустимы, а punkAssociationInfo также является допустимым (не null), система создает меню, используя значения aKeys и cKeys, и игнорирует punkAssociationInfo (IQueryAssociations).
Члены apidl и cidl можно использовать в качестве параметров метода IShellFolder::GetUIObjectOf для получения IDataObject.
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Верхняя часть | shlobj_core.h (включая Shlobj.h) |