【发布时间】:2014-01-26 23:47:31
【问题描述】:
As I can see, when more than 16 files are selected DragQueryFile(hDrop, 0xFFFFFFFF, NULL, 0);返回 16。 MSDN:http://msdn.microsoft.com/en-us/library/dd758093%28VS.85%29.aspx “在 Windows 7 及更高版本中,当查询快捷菜单时,传递给动词的项目数限制为 16。然后在调用该动词时重新创建并重新初始化该动词。”
但我的 FileContextMenuExt::Initialize 函数只被调用一次,即使我选择了超过 16 个文件。 (我使用输出到文本文件检查了它)。
如何获取所选文件的完整列表及其编号?
我的问题类似于Shell Extension: DragQueryFile returns at most 16 (in Windows 7) 但在那里没有找到解决方案。 谁能帮帮我?
【问题讨论】:
-
你有什么问题?
-
一旦您选择了您的操作,就会第二次调用初始化,但这次是完整列表?还是我阅读文档有误?
-
"但是我的 FileContextMenuExt::Initialize 函数只被调用一次,即使我选择了超过 16 个文件。(我使用输出到文本文件检查了它)。"
-
只有在调用动词时才会重新初始化。
-
你的意思是当我调用动词时,在动词实际起作用之前,shell 应该用完整的列表再次调用我的 Initialize 函数?但实际上,我的 Initialize 函数只被调用一次(Initialize 函数写入日志信息,其中包含 windows shell 提供给它的文件数,并且它始终小于或等于 16)。