Why Some Apps Accept Paste but Reject Drag
By Khushi Yadav
Paste and drag look like the same gift. They are not. Paste asks the clipboard what formats are on it right now. Drag asks a data object that exists only while the mouse button is down, and only for formats the source attached to that drag.
An app can implement one and not the other. A source can offer CF_DIB on the clipboard and CF_HDROP on a drag — or the reverse. The user sees “Ctrl+V works, drop shows a ban circle.”
This page names the formats in human language. The companion teardown is How Windows File Drop Lists Actually Work.
Two APIs
Clipboard paste
- User copies. Source calls
SetClipboardDatafor one or more formats (text, DIB, HDROP, HTML, private). - User focuses the target and presses Ctrl+V.
- Target calls
GetClipboardDatafor the first format it likes.
OLE drag-and-drop
- Source calls
DoDragDropwith anIDataObject. - As the cursor moves, Windows asks each window under the cursor whether it is an
IDropTargetand whichDROPEFFECTit allows (copy, move, link, none). - On drop, the target calls
IDataObject::GetDatafor a format that drag advertised.
The clipboard and the drag object can be unrelated. Dragging from Explorer does not have to change what Win+V shows. Copying a snip does not create a drag.
HTML5 drag inside a browser is a third path: DataTransfer items (text/uri-list, Files, text/html). A native Explorer window is not a browser. A WebView-based Slack window might only speak HTML5.
The formats people actually hit
| Format | Human meaning | Typical paste consumer | Typical drop consumer |
|---|---|---|---|
| CF_UNICODETEXT / CF_TEXT | Characters | Notepad, address bars | Rarely a file drop |
| CF_DIB / CF_BITMAP | Pixels | Word, Paint, many chat boxes | Only if the target embeds images from a drag (many do not) |
| CF_HDROP | List of existing file paths | Explorer (paste = copy/move files) | Explorer, most attach UIs |
| HTML Format | Marked-up text, often with <img src> | Word, browsers | Sometimes; often becomes a .url shortcut |
| CFSTR_FILEDESCRIPTOR + FILECONTENTS | Virtual file (bytes without a path yet) | Some mail clients | Outlook-style attaches |
| CFSTR_PREFERREDDROPEFFECT | Copy vs move hint | Explorer paste | Explorer drop |
Microsoft Learn: when several formats are present, the source should register the richest first. The target takes the first it understands. Word taking HTML instead of DIB is how mystery formatting appears. Explorer ignoring DIB is how a screenshot “will not paste into a folder.”
Why paste succeeds and drag fails
1. The target implemented paste only. A classic Win32 edit control pastes text. It is not an IDropTarget. Dragging a file onto it shows the ban circle. Ctrl+V still inserts text.
2. The drag did not include the format the target wants. A clipboard manager that starts an HTML5 drag of a bitmap preview offers pixels to web views and nothing Explorer can name. Explorer wants HDROP. Why You Cannot Drag Old Clipboard Files Into Explorer.
3. Integrity / elevation mismatch. Windows blocks drag-and-drop from a medium-IL process into an elevated window (UIPI). Paste can also fail across integrity levels, but the ban-circle on drop is the usual tell. Run both windows elevated or neither.
4. The target accepts files but the drag is pixels. Slack compose: Ctrl+V a snip (DIB) works. Dragging the same preview from a history UI without a temp file fails. Save or materialize a file, then drag. Dropping Clipboard Images Into Word, Slack, and Explorer.
5. The target accepts pixels but the drag is HDROP. Some image editors want a DIB on paste and treat a file drop as File > Open. If the drop handler is not registered, the circle appears even though Ctrl+V of a snip would work.
6. Browser-only drop zones. A dashed “drop files here” box in Chrome is listening for Files. A native DIB drag never fires that listener. Use the file picker or drag from Explorer.
7. Win+V is a paste UI. Clicking a card synthesizes a paste. It does not start DoDragDrop with HDROP. Expectation mismatch, not a broken mouse.
Debugging in five minutes
- Reproduce paste: Ctrl+V. Note what appeared (picture, path text, file, nothing).
- Reproduce drag from the same source. Note the cursor (copy, move, ban).
- Ask: is the source Explorer (HDROP), Snipping Tool (DIB), a browser (HTML + maybe file), or a manager?
- If the target is Explorer and the source is a snip, stop dragging. Save a file.
- If the target is a web drop zone and the source is a manager’s thumbnail, export a file first.
- If both windows should be native and the target is elevated, match elevation.
Developers can inspect formats with a clipboard viewer that lists registered names, or with EnumClipboardFormats / IEnumFORMATETC. Users do not need that once the table above is internalized.
What Windows history changes (and does not)
History off until enabled; 25 text/HTML/bitmap items; 4 MB; unpinned clear on restart; pins persist; optional text sync. None of that adds HDROP to a drag. Enabling history does not make Explorer accept a screenshot drop.
How to Drag an Image Out of Clipboard History.
UIPI in slightly more detail
User Interface Privilege Isolation stops a low-integrity process from driving a high-integrity window. Drag-and-drop is a form of driving. An Explorer window started from an elevated command prompt is a common high-IL target. The unelevated manager or browser cannot drop onto it. The ban circle is the OS, not a bug in the PNG.
Workaround: drop onto an unelevated Explorer window, or run the source elevated to match (only when that is already the security model). Do not disable UAC to make a drag work.
Remote desktop and VM tools
Some remote-desktop clients remap clipboard and not drag, or the reverse. A paste of text works; a file drop is a virtual channel with its own size and type limits. That is the remote stack, not CF_HDROP on the guest. Test file copy with the client’s documented “share clipboard” / “drive redirect” features rather than assuming OLE drag crosses the session.
Sandboxed Store apps
Some Microsoft Store apps run in an AppContainer. They may read the clipboard with a capability and still refuse arbitrary file drops from outside their broker. Paste of text works; drop of a path from Explorer is mediated. If a Store app’s compose box accepts Ctrl+V of a snip but rejects a file drag, check whether its file picker works. That picker is the supported file path.
What a well-behaved source should offer
When starting a drag of something that is a file (or was just written to temp):
- CF_HDROP with fully qualified paths
CFSTR_PREFERREDDROPEFFECT= copy when the source should not delete the temp- Optionally
CFSTR_FILENAMEfor old targets
When the item is only pixels and the target is a document:
- Prefer paste (DIB already on the clipboard)
- Or write a PNG and drag HDROP if the user asked for a file drop
Edge-Drop’s reason to exist is the second bullet: materialize, then OLE-drag. It is optional. Paint + Save is the built-in version of the same idea.
Related reading
- How Windows File Drop Lists Actually Work
- Copying a Folder to the Clipboard: What Gets Stored
- Why You Cannot Drag Old Clipboard Files Into Explorer
- How to Get a Screenshot Into Photoshop Without Recopying
Sources
- Clipboard formats (Microsoft Learn) — multiple formats, richest first.
- Shell clipboard formats (Microsoft Learn) — CF_HDROP, FILEDESCRIPTOR, PREFERREDDROPEFFECT.
- Handling Shell data transfer scenarios (Microsoft Learn) — GetData + DragQueryFile for file names.
- DoDragDrop (Microsoft Learn) — OLE drag loop versus clipboard paste.
- Using the clipboard (Microsoft Support) — what Win+V stores (not a drag contract).
Khushi Yadav is a B.Tech Computer Science Engineering student interested in technology, software, and exploring practical applications of computer science. She enjoys learning new concepts and contributing to technology-focused projects.
GitHub · LinkedInCopy. Stack. Drop.
Transform your clipboard into an interactive edge shelf. Stack, pin, and drag assets into any app with zero friction.
Download for Windows Get from Microsoft Store
How to Install Guide · First 10 Minutes Guide · Drag & Drop Guide · Edge-Drop vs Win+V · Support
Free · Lightweight · Privacy First