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 指向的 CMINVOKECOMMANDINFO 或 CMINVOKECOMMANDINFOEX 结构中的数据的零个或以下一个或多个标志。
CMIC_MASK_HOTKEY
dwHotKey 成员有效。
CMIC_MASK_ICON
未使用。
CMIC_MASK_FLAG_NO_UI
IContextMenu::InvokeCommand 的实现无法显示用户界面元素 (例如,在执行命令时) 错误消息。
CMIC_MASK_UNICODE
仅在 pici 指向 CMINVOKECOMMANDINFOEX 结构时使用。 指示快捷菜单处理程序应使用 lpVerbW、 lpParametersW、 lpTitleW 和 lpDirectoryW 成员,而不是其 ANSI 等效项。 由于某些快捷菜单处理程序可能不支持 Unicode,因此还应在 lpVerb、 lpParameters、 lpTitleW 和 lpDirectory 成员中传递有效的 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
指向 CMINVOKECOMMANDINFO 或 CMINVOKECOMMANDINFO 结构的指针。
punkSite
类型: IUnknown*
指向上下文菜单处理程序的站点的指针。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
标头 | shlobj_core.h (包括 Shlobj.h) |