Поделиться через


Структура 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)