当我的右键单击目标是快捷方式时,我很难在 ContextMenu 的实现中获取选定文件的列表。全局内存句柄返回一个仅包含快捷方式项的列表,并且似乎不知道我选择的任何其他项。
我在许多 3rd 方应用程序中也注意到了这种行为,包括 Notepad++、WinRar 和 UltraEdit。
当右键单击的目标是快捷方式时,获取所选文件列表的正确方法是什么?这不是资源管理器中包含的文件压缩功能的问题(右键单击 > 发送到 > 压缩的压缩文件夹)。
编辑:这是我当前方法的一小部分。pida->cidl
当目标是快捷方式时变为 1,否则它是我选择的正确数量的项目:
CStgMedium me;
pDataObj->GetData(&fe, &me);
LPIDA pida = reinterpret_cast<LPIDA>(me.hGlobal);
for(UINT i = 0; i < pida->cidl; i++) {
...
}