0
我创建了一个ATL/COM项目,并实现了IShellExtInit接口。在Initialize方法中,我使用DrapDropFile函数来获取文件夹中所选文件的文件名。如何获取右键单击事件对象文件名?
例如
1.In文件夹C:\ WINDOWS \ MyFolder文件\包含的文件:
a.png, b.bmp, c.jpg
2.右键点击 “b.bmp”。
3.在Initialize方法中,我得到一个文件名列表。
fileNames[0] = C:\WINDOWS\MyFolder\b.bmp
fileNames[1] = C:\WINDOWS\MyFolder\c.jpg
fileNames[2] = C:\WINDOWS\MyFolder\a.png
问:
我怎样才能得到文件的实际顺序(A/B/C不是B/C/A)
期待:
1.右键点击“b.bmp”。
I get the file name: C:\WINDOWS\MyFolder\a.png
2.右键单击“a.png”。
I get the file name: C:\WINDOWS\MyFolder\a.png
您以任何顺序获取源文件填充IDataObject的文件;没有在目标上执行自己的排序,我不认为你可以对此做任何事情。 – Luke 2010-09-02 20:26:46
我需要实际点击的对象。 – 2010-09-04 06:03:16
我认为资源管理器作为IDataObject中的第一个项目传递选定的对象(有一段时间,所以我可能是错的)。无论如何,我认为没有一种简单的方法可以做到这一点。我唯一能想到的就是试图找到相关文件夹的IShellFolderView(或其他),并试图确定该文件夹中的焦点对象。 – Luke 2010-09-06 15:24:38