|
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