我有一个程序可以作为 OLE 拖放的放置目标。 (基于 http://www.catch22.net/tuts/ole-data-transfers )
我的问题是是否可以在文件夹(如临时文件夹)上传递此放置事件。如同用户在 GUI(即放置目标)上放置一样,此放置目标将放置发送到资源管理器。
类似于将消息发送到文件夹 -
SendMessage((HWND) folder_hwnd, WM_OLEDROP, (WPARAM)pDataObject, 0); //Pseudo-code
谢谢。
最佳答案
您可以使用以下步骤模拟拖放到文件夹上:
- 获取目标文件夹的 PIDL,例如使用
SHParseDisplayName
- 获得
IShellFolder
对于目标文件夹,例如使用SHBindToObject
- 绑定(bind)到文件夹的
IDropTarget
界面使用IShellFolder::GetUIObjectOf
然后,您可以使用 IDropTarget
接口(interface)的各种方法模拟放置到文件夹中。
关于c++ - 使用 C++ 将放置事件传递到文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28139791/