【问题标题】:File-Drop mechanism of some associated filetypes (.zip, .rar,...)一些相关文件类型(.zip、.rar、...)的文件丢弃机制
【发布时间】:2015-12-28 17:46:07
【问题描述】:

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

演示图片:

编辑:发表评论后,我想澄清一下我想要做什么(见图):

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

【问题讨论】:

  • 我不知道Drag and Drop 有什么奇怪之处,但这是为任何应用程序启用拖放支持的常用方法。
  • 是的,如果放置目标不是可执行文件或活动窗口,这只是不常用且具有挑战性。
  • 你的问题也没有这么说。如果您想知道如何与 shell 集成(即 explorer.exe),您至少应该在问题中提及 explorer。如所写,需要大量阅读才能理解您真正要问的内容。

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


【解决方案1】:

您需要实现一个Shell Drop Handler

这是一个实现IPersistFileIDropTarget 接口的COM 对象。 IPersistFile 将告诉您正在删除哪个文件。 IDropTarget 会给你一个IDataObject 告诉你哪些文件/数据正在被删除。

文档在这里:

【讨论】:

  • 好的,这个看起来很有希望,我会研究一下。
猜你喜欢
  • 2011-10-22
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 2010-12-04
相关资源
最近更新 更多