Структура DFMICS (shlobj_core.h)
Содержит дополнительные аргументы, используемые DFM_INVOKECOMMANDEX.
Синтаксис
typedef struct {
DWORD cbSize;
DWORD fMask;
LPARAM lParam;
UINT idCmdFirst;
UINT idDefMax;
LPCMINVOKECOMMANDINFO pici;
IUnknown *punkSite;
} DFMICS, *PDFMICS;
Члены
cbSize
Тип: DWORD
Размер этой структуры в байтах.
fMask
Тип: DWORD
Ноль или один или несколько следующих флагов, указывающих способ обработки данных в структуре CMINVOKECOMMANDINFO или CMINVOKECOMMANDINFOEX , на которую указывает pici.
CMIC_MASK_HOTKEY
Член dwHotKey является допустимым.
CMIC_MASK_ICON
Не используется.
CMIC_MASK_FLAG_NO_UI
Реализация IContextMenu::InvokeCommand не позволяет отображать элементы пользовательского интерфейса (например, сообщения об ошибках) при выполнении команды.
CMIC_MASK_UNICODE
Используется, только если pici указывает на структуру CMINVOKECOMMANDINFOEX . Указывает, что обработчик контекстного меню должен использовать элементы lpVerbW, lpParametersW, lpTitleW и lpDirectoryW вместо их эквивалентов ANSI. Так как некоторые обработчики контекстного меню могут не поддерживать Юникод, следует также передать допустимые строки ANSI в члены lpVerb, lpParameters, lpTitleW и lpDirectory .
CMIC_MASK_NO_CONSOLE
Если обработчик контекстного меню должен создать новый процесс, он обычно создает новую консоль. Установка флага CMIC_MASK_NO_CONSOLE запрещает создание новой консоли.
CMIC_MASK_FLAG_SEP_VDM
Этот флаг действителен только при ссылке на 16-разрядное приложение windows. Если этот параметр задан, приложение, на которое указывает ярлык, выполняется на частной виртуальной машине DOS (VDM). См. заметки.
CMIC_MASK_ASYNCOK
Реализация IContextMenu::InvokeCommand может отключать новый поток или процесс для обработки вызова и не должна блокироваться при завершении вызываемой функции. Например, если команда имеет значение "delete", вызов IContextMenu::InvokeCommand может вернуться до удаления всех элементов. Так как это рекомендуется, вызов приложений, указывающих этот флаг, не может гарантировать, что этот запрос будет выполнен, если они не знакомы с реализацией вызываемой команды.
CMIC_MASK_NOASYNC
Windows Vista и более поздних версий. Реализация IContextMenu::InvokeCommand должна быть синхронной, а не возвращать ее до завершения. Так как это рекомендуется, вызов приложений, указывающих этот флаг, не может гарантировать, что этот запрос будет выполнен, если они не знакомы с реализацией вызываемой команды.
CMIC_MASK_SHIFT_DOWN
Нажата клавиша SHIFT. Используйте его вместо опроса текущего состояния клавиатуры, которое могло измениться с момента вызова глагола.
CMIC_MASK_CONTROL_DOWN
Нажата клавиша CTRL. Используйте его вместо опроса текущего состояния клавиатуры, которое могло измениться с момента вызова глагола.
CMIC_MASK_FLAG_LOG_USAGE
Указывает, что реализации IContextMenu::InvokeCommand может потребоваться отслеживать вызываемый элемент для таких функций, как меню "Последние документы".
CMIC_MASK_NOZONECHECKS
Не выполняйте проверка зоны. Этот флаг позволяет ShellExecuteEx обходить проверку зоны, введенную IAttachmentExecute.
CMIC_MASK_PTINVOKE
Используется, только если pici указывает на структуру CMINVOKECOMMANDINFOEX . Допустимый член ptInvoke .
lParam
Тип: LPARAM
Указатель на строку, завершающуюся значением NULL, которая содержит дополнительные аргументы для выбранной команды меню. Этот элемент может иметь значение NULL.
idCmdFirst
Тип: UINT
Минимальное значение, которое обработчик может указать для идентификатора пункта меню.
idDefMax
Тип: UINT
Максимальное значение, которое обработчик может указать для идентификатора элемента меню.
pici
Тип: LPCMINVOKECOMMANDINFO
Указатель на структуру CMINVOKECOMMANDINFO или CMINVOKECOMMANDINFO .
punkSite
Тип: IUnknown*
Указатель на сайт обработчика контекстного меню.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Верхняя часть | shlobj_core.h (включая Shlobj.h) |