コード例 #1
0
        IEnumerable <string> GetFilesCopiedFromRawData(byte[] data)
        {
            var files = new List <string>();

            using (var memoryHandle = memoryHandleFactory.AllocateInMemory(data))
            {
                var count = ClipboardApi.DragQueryFile(memoryHandle.Pointer, 0xFFFFFFFF, null, 0);
                FetchFilesFromMemory(files, memoryHandle, count);
            }

            return(files);
        }
コード例 #2
0
        static void FetchFilesFromMemory(List <string> files, IMemoryHandle memoryHandle, int count)
        {
            for (var i = 0u; i < count; i++)
            {
                var length          = ClipboardApi.DragQueryFile(memoryHandle.Pointer, i, null, 0);
                var filenameBuilder = new StringBuilder(length);

                length = ClipboardApi.DragQueryFile(memoryHandle.Pointer, i, filenameBuilder, length + 1);

                var fileName = filenameBuilder.ToString();
                files.Add(fileName);
            }
        }