从我的应用程序中拖出文件时如何获取目标路径

时间:2015-03-02 10:06:20

标签: c++builder

我完成了一个小型演示来实现ole drag& drop。

我的应用程序看起来像这样: enter image description here

将项目从TListView拖到系统资源管理器时可能会导致副本。我使用IDropSource,IDataObject和OLE

剪贴板格式CF_HDROP实现,所以我永远不需要将目标路径复制到我的

有没有办法让我知道目的地路径?

我需要一个解决方案,提前谢谢!

1 个答案:

答案 0 :(得分:1)

很抱歉,但是无法找到目的地,也不需要知道它。 OLE拖放不会公开该信息。您提供源数据,目标决定如何处理它,然后告诉您结果是否是复制/移动/链接,以便您可以相应地清理源数据。

在这种情况下,您提供文件名作为源,Explorer会将文件复制到目标文件夹。想想如果将文件放入没有文件系统路径的虚拟文件夹中会发生什么。该文件仍可以复制(如果您在源数据中提供CFSTR_FILEDESCRIPTORCFSTR_FILECONTENT,则更是如此)。这是完全可以接受的OLE,以及为什么拖放是按照它的方式抽象的。