|
9 | 9 | using System.Runtime.InteropServices; |
10 | 10 | using System.Runtime.InteropServices.ComTypes; |
11 | 11 | using Vanara.PInvoke; |
12 | | -using Vanara.Windows.Shell; |
13 | 12 | using Windows.ApplicationModel.DataTransfer; |
14 | 13 | using Windows.Graphics.Imaging; |
15 | 14 | using Windows.Storage; |
16 | 15 | using Windows.Storage.Streams; |
| 16 | +using WinRT; |
17 | 17 | using FileAttributes = System.IO.FileAttributes; |
18 | 18 |
|
19 | 19 | namespace Files.App.Utils.Storage |
@@ -758,12 +758,14 @@ public static async Task<IEnumerable<IStorageItemWithPath>> GetDraggedStorageIte |
758 | 758 | { |
759 | 759 | if (hasVirtualItems && packageView.Contains("FileContents")) |
760 | 760 | { |
761 | | - var descriptor = NativeClipboard.CurrentDataObject.GetData<Shell32.FILEGROUPDESCRIPTOR>("FileGroupDescriptorW"); |
| 761 | + var dataObjectProvider = packageView.As<Shell32.IDataObjectProvider>(); |
| 762 | + var iddo = dataObjectProvider.GetDataObject(); |
| 763 | + var descriptor = iddo.GetData<Shell32.FILEGROUPDESCRIPTOR>("FileGroupDescriptorW"); |
762 | 764 | for (var ii = 0; ii < descriptor.cItems; ii++) |
763 | 765 | { |
764 | 766 | if (descriptor.fgd[ii].dwFileAttributes.HasFlag(FileFlagsAndAttributes.FILE_ATTRIBUTE_DIRECTORY)) |
765 | 767 | itemsList.Add(new VirtualStorageFolder(descriptor.fgd[ii].cFileName).FromStorageItem()); |
766 | | - else if (NativeClipboard.CurrentDataObject.GetData("FileContents", DVASPECT.DVASPECT_CONTENT, ii) is IStream stream) |
| 768 | + else if (iddo.GetData("FileContents", DVASPECT.DVASPECT_CONTENT, ii) is IStream stream) |
767 | 769 | { |
768 | 770 | var streamContent = new ComStreamWrapper(stream); |
769 | 771 | itemsList.Add(new VirtualStorageFile(streamContent, descriptor.fgd[ii].cFileName).FromStorageItem()); |
|
0 commit comments