Double Commander is a free cross platform open source file manager with two panels side by side. https://doublecmd.sourceforge.io
  • Pascal 94.5%
  • Assembly 4.1%
  • HTML 0.5%
  • Shell 0.4%
  • C 0.2%
  • Other 0.1%
Find a file
flxkid 5e2980926e
ADD: Virtual file drag-and-drop and clipboard paste support (#2577)
* Add virtual file drag-and-drop and clipboard paste support

Adds support for virtual file operations using Windows CFSTR_FILEDESCRIPTOR and CFSTR_FILECONTENTS formats. Enables file transfers from sources like VMware Fusion Mac-to-Windows clipboard, Remote Desktop, and OneDrive placeholders.

Changes to uOleDragDrop.pas:

- Fix memory leaks: Add missing ReleaseStgMedium and GlobalUnlock calls

- Change GetDropFileGroupFilenames to class function for clipboard reuse

- Change SaveCfuContentToFile to class function for clipboard reuse

- Wrap operations in try-finally blocks for proper cleanup

Changes to uClipboard.pas:

- Add OLE clipboard support via OleGetClipboard and IDataObject

- Check for CFSTR_FILEDESCRIPTORW/CFSTR_FILEGROUPDESCRIPTOR formats

- Extract virtual files using drag-and-drop extraction logic

- Detect lazy materialization and delegate to Windows Shell paste

- Keep clipboard open for normal files to support lazy materialization

Tested with VMware Fusion running ARM-based Windows guests. May also work for other virtual file scenarios that were not available for testing.

All existing CF_HDROP operations continue to work unchanged.

---------

Co-authored-by: Alexander Koblov <alexx2000@mail.ru>
2025-11-13 09:02:40 +03:00
.github FIX: Build macOS aarch64 snapshot 2025-11-12 16:07:06 +03:00
components FIX: Pixelated icons under Windows (issue #2584) 2025-11-04 19:25:45 +03:00
default ADD: MultiArc - FallBackArchivers (#1837) 2024-09-17 00:07:21 +03:00
doc UPD: Use GifView component instead GifAnim (fixes #814) 2025-07-08 00:08:22 +03:00
doublecmd.app/Contents UPD: new Icon for macOS, better than before on macOS 15, issue #2552 2025-10-20 17:23:01 +08:00
highlighters ADD: Swift syntax highlighter 2025-05-17 16:52:31 +03:00
install ADD: SevenZip - install plugin under Linux (experimental) 2025-10-11 13:39:55 +03:00
language UPD: Hungarian language file (#2553) 2025-11-02 14:51:56 +03:00
libraries/src UPD: libunrar build script 2025-06-28 16:28:21 +03:00
pixmaps ADD: icons for cm_MainFontZoomIn / cm_MainFontZoomOut 2025-07-12 16:56:00 +08:00
plugins UPD: Sample plugin 2025-11-11 18:17:02 +03:00
scripts FIX: RabbitVCS 0.16 compatibility 2021-02-20 20:32:36 +00:00
sdk ADD: FsExtractCustomIcon function support 2025-06-22 20:11:11 +03:00
src ADD: Virtual file drag-and-drop and clipboard paste support (#2577) 2025-11-13 09:02:40 +03:00
tools FIX: JSON-Pack utility 2023-07-11 23:03:27 +03:00
units DEL: Don't read Lazarus revision 2021-08-21 11:17:35 +03:00
.gitattributes FIX: Unset 'text' attribute for '*.bat' 2023-01-19 21:12:20 +03:00
.gitignore FIX: .gitignore: all "doublecmd" folders are incorrectly ignored (#943) 2023-04-27 11:41:15 +03:00
build.bat UPD: Line-endings 2023-01-19 21:17:15 +03:00
build.sh UPD: Build mode name, build scripts 2021-06-05 21:50:30 +03:00
clean.bat UPD: Rename DCPcrypt to KAScrypt 2023-12-04 20:25:15 +03:00
clean.sh Update clean.sh (#1504) 2024-03-02 17:32:51 +03:00
doublecmd.help ADD: File with available help files translations, use it when open online help 2021-02-12 19:12:03 +00:00
doublecmd.lpg UPD: Rename DCPcrypt to KAScrypt 2023-12-04 20:25:15 +03:00
doublecmd.png UPD: Use new icon also in trunk 2010-01-15 11:26:14 +00:00
doublecmd.sh ADD: Pass command line arguments 2023-05-15 23:08:27 +03:00
fpmake.pp UPD: Use GifView component instead GifAnim (fixes #814) 2025-07-08 00:08:22 +03:00
LICENSE.md ADD: GitHub license file (fixes #660) 2022-11-30 20:31:09 +03:00
pinyin.tbl UPD: Rename Pinyin table file 2021-08-29 12:54:21 +03:00
README.md UPD: Added clarifications (#713) 2022-12-12 19:42:27 +03:00

Double Commander is a free cross-platform open source file manager with two panels side by side (or one above the other). It is inspired by Total Commander and features some innovative new ideas.

Double Commander can be run on several platforms and operating systems. It supports 32-bit and 64-bit processors. See Supported platforms for a complete list.

See Double Commander in action in the Screenshot Gallery.

Where to start

Download

Go to the Double Commander download page to download the latest release.

You can check the latest version on the Versions page.

See if Double Commander is supported for your platform on the Supported platforms page.

Develop

For more information on the development of Double Commander, see the Development page.

Discuss

Go to our forum for discussions. There are English and Russian sections.

If you want to stay up-to-date with the project, you can check out the available news feeds.