拖放文件 - 但在拖动过程中已获取文件列表

问题描述 投票:0回答:1

我希望允许用户从 Windows 资源管理器中拖放文件,但甚至在用户将文件放入应用程序之前就已经获取了有关文件的一些信息。例如,已经获取一些元数据或大量文件的预览。

有很多关于使用 WinAPI 进行拖放的信息,但我还没有找到任何可以让我在拖动过程中处理文件而无需等待拖放的信息。这可能吗?

c++ winapi
1个回答
0
投票

在拖动过程中,没有必要获取文件信息。仅拖放文件路径。然后,您总是可以在放置事件中获得有关这些路径的更多信息。请记住,没有通过拖放发送的文件。 这是一般工作流程

  1. 使用 DragAcceptFiles 注册窗口 https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-dragacceptfiles
  2. 处理消息 WM_DROPFILES https://learn.microsoft.com/en-us/windows/win32/shell/wm-dropfiles
  3. 要进一步了解文件路径,请使用 WM_DROPFILES 中的 wparam 调用 DragQueryFile https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-dragacceptfiles
  4. 对于每个文件,您检查文件大小、文件内容或其他任何信息等信息,了解您需要了解的信息。
© www.soinside.com 2019 - 2024. All rights reserved.