某些相关文件类型(.zip、.rar、...)的文件删除机制
File-Drop mechanism of some associated filetypes (.zip, .rar,...)
我想知道,像 WinRAR 这样的文件管理器如何管理它以启用对其存档文件的拖放支持(当文件被拖放到 .rar 文件上时,它会打开并且 WinRAR 可以选择将文件添加到存档).
演示图片:
编辑:经过一些评论,我想澄清我想做什么(见图):
- 某种数据类型的文件接受丢弃请求(.rar)。
- 删除文件 (.txt) 会导致 Shell 调用传递 删除的文件 (.txt) 的名称以及接受 Drop (.rar) 的文件。
- 注册到文件类型的应用程序被调用,两个文件名都在命令行中提供给它。
您需要实现一个 Shell 放置处理程序。
这是一个实现 IPersistFile
和 IDropTarget
接口的 COM 对象。 IPersistFile
会告诉您哪个文件被拖放到哪个文件上。 IDropTarget
会给你一个 IDataObject
告诉你哪个 files/data 被丢弃了。
文档在这里:
我想知道,像 WinRAR 这样的文件管理器如何管理它以启用对其存档文件的拖放支持(当文件被拖放到 .rar 文件上时,它会打开并且 WinRAR 可以选择将文件添加到存档).
演示图片:
编辑:经过一些评论,我想澄清我想做什么(见图):
- 某种数据类型的文件接受丢弃请求(.rar)。
- 删除文件 (.txt) 会导致 Shell 调用传递 删除的文件 (.txt) 的名称以及接受 Drop (.rar) 的文件。
- 注册到文件类型的应用程序被调用,两个文件名都在命令行中提供给它。
您需要实现一个 Shell 放置处理程序。
这是一个实现 IPersistFile
和 IDropTarget
接口的 COM 对象。 IPersistFile
会告诉您哪个文件被拖放到哪个文件上。 IDropTarget
会给你一个 IDataObject
告诉你哪个 files/data 被丢弃了。
文档在这里: