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

指定如何处理 pici 指向的 CMINVOKECOMMANDINFOCMINVOKECOMMANDINFOEX 结构中的数据的零个或以下一个或多个标志。

CMIC_MASK_HOTKEY

dwHotKey 成员有效。

CMIC_MASK_ICON

未使用。

CMIC_MASK_FLAG_NO_UI

IContextMenu::InvokeCommand 的实现无法显示用户界面元素 (例如,在执行命令时) 错误消息。

CMIC_MASK_UNICODE

仅在 pici 指向 CMINVOKECOMMANDINFOEX 结构时使用。 指示快捷菜单处理程序应使用 lpVerbWlpParametersWlpTitleWlpDirectoryW 成员,而不是其 ANSI 等效项。 由于某些快捷菜单处理程序可能不支持 Unicode,因此还应在 lpVerblpParameterslpTitleWlpDirectory 成员中传递有效的 ANSI 字符串。

CMIC_MASK_NO_CONSOLE

如果快捷菜单处理程序需要创建新进程,它通常会创建新控制台。 设置 CMIC_MASK_NO_CONSOLE 标志会禁止创建新控制台。

CMIC_MASK_FLAG_SEP_VDM

仅当引用基于 Windows 的 16 位应用程序时,此标志才有效。 如果设置,快捷方式指向的应用程序在专用虚拟 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

请勿执行区域检查。 此标志允许 ShellExecuteExecuteEx 绕过 IAttachmentExecute 到位的区域检查。

CMIC_MASK_PTINVOKE

仅在 pici 指向 CMINVOKECOMMANDINFOEX 结构时使用。 ptInvoke 成员有效。

lParam

类型:LPARAM

指向以 null 结尾的字符串的指针,该字符串包含所选菜单命令的其他参数。 此成员可以为 NULL

idCmdFirst

类型: UINT

处理程序可以为菜单项标识符指定的最小值。

idDefMax

类型: UINT

处理程序可以为菜单项标识符指定的最大值。

pici

类型: LPCMINVOKECOMMANDINFO

指向 CMINVOKECOMMANDINFOCMINVOKECOMMANDINFO 结构的指针。

punkSite

类型: IUnknown*

指向上下文菜单处理程序的站点的指针。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 shlobj_core.h (包括 Shlobj.h)