使用 C++ 将放置事件传递到文件夹
Pass Drop Event on to a Folder using C++
我有一个程序可以作为 OLE 拖放的放置目标。
(基于 http://www.catch22.net/tuts/ole-data-transfers)
我的问题是是否可以在文件夹(如临时文件夹)上传递此放置事件。就像用户在 GUI(即放置目标)上放置一样,此放置目标将放置发送到资源管理器。
类似于将消息发送到文件夹 -
SendMessage((HWND) folder_hwnd, WM_OLEDROP, (WPARAM)pDataObject, 0); //Pseudo-code
谢谢。
您可以使用以下步骤模拟拖放到文件夹中:
- 获取目标文件夹的 PIDL,例如使用
SHParseDisplayName
- 获得一个
IShellFolder
for the target folder e.g. using SHBindToObject
- 绑定到文件夹的
IDropTarget
interface using IShellFolder::GetUIObjectOf
然后您可以使用 IDropTarget
界面的各种方法模拟放置到文件夹。
我有一个程序可以作为 OLE 拖放的放置目标。 (基于 http://www.catch22.net/tuts/ole-data-transfers)
我的问题是是否可以在文件夹(如临时文件夹)上传递此放置事件。就像用户在 GUI(即放置目标)上放置一样,此放置目标将放置发送到资源管理器。
类似于将消息发送到文件夹 -
SendMessage((HWND) folder_hwnd, WM_OLEDROP, (WPARAM)pDataObject, 0); //Pseudo-code
谢谢。
您可以使用以下步骤模拟拖放到文件夹中:
- 获取目标文件夹的 PIDL,例如使用
SHParseDisplayName
- 获得一个
IShellFolder
for the target folder e.g. usingSHBindToObject
- 绑定到文件夹的
IDropTarget
interface usingIShellFolder::GetUIObjectOf
然后您可以使用 IDropTarget
界面的各种方法模拟放置到文件夹。