我有一个 WPF 应用程序。我希望允许用户将“文件”(或其视觉表示)从我的 WPF 窗口拖放到真正的 Windows 资源管理器中。
我设法通过使用 Ole32.dll 中的本机 DoDragDrop 来做到这一点
[DllImport("ole32.dll", CharSet = CharSet.Auto, ExactSpelling = true, PreserveSig = false)]
public static extern void DoDragDrop(System.Runtime.InteropServices.ComTypes.IDataObject dataObject IDropSource dropSource, int allowedEffects, int[] finalEffect);
这很好用。
但与其复制文件,我只想得到目的地。即,如果用户将文件拖到在 C:\Folder 上打开的资源管理器中 - 我想获取 C:\Folder... 或者至少获取发生放置事件的对象(在我的应用程序之外),并且希望我能从那个对象那里得到路径。