c++ - 某些相关文件类型(.zip、.rar、...)的文件删除机制

标签 c++ winapi drag-and-drop ole file-type

我想知道,像 WinRAR 这样的文件管理器如何管理它以启用对其存档文件的拖放支持(当将文件拖放到 .rar 文件上时,它会打开,并且 WinRAR 可以选择将文件添加到存档中)。

演示图片:enter image description here

编辑:经过一些评论,我想澄清我想做什么(见图片):

  1. 特定数据类型的文件接受 Drop 请求 (.rar)。
  2. 删除文件 (.txt) 会导致 Shell 调用传递删除的文件 (.txt) 的名称以及接受删除的文件的名称 (.rar).
  3. 注册到文件类型的应用程序被调用,两个文件名都在命令行中提供给它。

最佳答案

您需要实现一个Shell Drop Handler

这是一个 COM 对象,它实现了 IPersistFileIDropTarget 接口(interface)。 IPersistFile 会告诉您哪个文件被放置在上面。 IDropTarget 会给你一个 IDataObject 来告诉你哪些文件/数据被删除了。

文档在这里:

关于c++ - 某些相关文件类型(.zip、.rar、...)的文件删除机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34498204/

相关文章:

c++ - 使用 GDI 以图像为中心的黑色背景

java - 当调用 TransferHandler canImport 方法时,来自 jvm 外部的可传输数据的传输数据默认为 null 吗?

c++ - 是否可以将 "add"设置为默认的复制构造函数?

c++ - 如何将对函数的引用传递给另一个函数

c++ - 在 C++ 中测试自定义列表类时卡住

javascript - 拖动的 div 改变目的地的位置

windows-phone-8 - 在 Windows Phone 中拖动和重新排序列表框项目

c++ - CMake Exported Lib - 在客户端应用程序中找不到包含/lib 路径

c++ - GetModuleFileName 以 8.3 格式返回路径

c - 如何获取卷GUID路径所属的物理设备?