Commit Graph

71 Commits

Author SHA1 Message Date
Jacek Caban da01911cc1 win32u: Move NtUserGetOpenClipboardWindow implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-16 17:44:42 +01:00
Jacek Caban 92f2d659f5 win32u: Move NtUserGetPriorityClipboardFormat implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 12:07:44 +01:00
Jacek Caban daf5664b0a win32u: Move NtUserAddClipboardFormatListener and NtUserRemoveClipboardFormatListener implementations from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 12:07:44 +01:00
Jacek Caban 39b9f1318e win32u: Move NtUserGetClipboardSequenceNumber implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 12:07:44 +01:00
Jacek Caban 6a768e2882 win32u: Move NtUserGetUpdatedClipboardFormats implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 12:07:44 +01:00
Jacek Caban e2ede91cf1 win32u: Move NtUserGetClipboardViewer implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 12:07:44 +01:00
Jacek Caban e8dac807aa win32u: Move NtUserGetClipboardOwner implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 12:07:44 +01:00
Jacek Caban a4e800f380 win32u: Move NtUserIsClipboardFormatAvailable implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 12:07:44 +01:00
Jacek Caban 70f8330d0e win32u: Move NtUserGetClipboardFormatName implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 12:07:44 +01:00
Jacek Caban 170cb0d930 win32u: Move NtUserCountClipboardFormats implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 18:39:48 +01:00
Francois Gouget 9bd3e3fbe9 user32/tests: GetClipboardData() returns no error for missing formats.
Despite the documentation that says if GetClipboardData() returns NULL
one can check GetLastError() to know why!

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-09 23:07:25 +02:00
Francois Gouget 031aef852e user32: Debugstr_format() should not modify the last error.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-03 21:50:58 +02:00
Alexandre Julliard 9cc9236556 user32: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 15:15:38 +02:00
Alexandre Julliard 719e28bd2c server: Don't increment the clipboard sequence number for delayed rendering or synthesized formats.
Based on a patch by Piotr Caban.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-24 13:03:39 +02:00
Sebastian Lackner df3c2a4a41 user32: Also release GMEM_FIXED data in free_cached_data.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-01 15:14:10 +02:00
Alexandre Julliard ab44b31287 user32: Fix METAFILEPICT marshalling for 64-bit.
Spotted by Sebastian Lackner.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-28 11:34:19 +09:00
Sebastian Lackner 0a1da6bce9 user32: Call GlobalUnlock with the correct argument in SetClipboardData.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-28 11:26:09 +09:00
Alexandre Julliard 8f24641ff3 user32: Enforce null termination of strings added to the clipboard.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-27 21:43:24 +09:00
Alexandre Julliard f0fbf1a9d1 user32: Cache clipboard data on the client side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-26 15:12:21 +09:00
Alexandre Julliard 9ed8f5e83f user32: Add synthesized clipboard formats on the server side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-26 15:06:10 +09:00
Alexandre Julliard 3044935b0e user32: Retrieve clipboard data from the server.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-26 14:48:32 +09:00
Alexandre Julliard c69b4995c5 user32: Retrieve available clipboard formats from the server.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-26 14:20:41 +09:00
Alexandre Julliard 79f90e4e41 user32: Store clipboard data on the server side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-26 14:20:26 +09:00
Alexandre Julliard 11c3867349 user32: Add an UpdateClipboard entry point to allow the driver to refresh the clipboard before it's open.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-23 20:30:15 +09:00
Alexandre Julliard fe04dd2a4b user32: Use GetDIBits to retrieve the bitmap header when synthesizing a DIB.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-15 21:02:34 +09:00
Alexandre Julliard 305d89f1ed server: Return the owner window in the close_clipboard request.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-14 16:25:08 +09:00
Alexandre Julliard 2bf890d95f server: Return the owner window in the release_clipboard request.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-14 16:25:07 +09:00
Alexandre Julliard c1f62c8985 user32: Clean up clipboard debug traces.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-14 16:25:07 +09:00
Alexandre Julliard 4bdcf512cf user32: Fix GetClipboardFormatName behavior for integer formats.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-14 16:25:07 +09:00
Alexandre Julliard ef08bd7675 user32: Clear last error in EnumClipboardFormats.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-09 22:48:32 +09:00
Sebastian Lackner 4e63a5bf8f user32: Add missing call to GlobalUnlock in render_synthesized_enhmetafile.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-08 10:08:55 +09:00
Sebastian Lackner 5eb8217f6d user32: Add missing calls to GlobalUnlock in render_synthesized_dib.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-08 10:08:45 +09:00
Sebastian Lackner a78fd8a07e user32: Only call GlobalUnlock when GlobalLock was successful.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-08 10:08:00 +09:00
Alexandre Julliard 9a652e211c user32: Synthesize bitmap clipboard formats on the user32 side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-07 11:36:24 +09:00
Alexandre Julliard 1993898459 user32: Synthesize metafile clipboard formats on the user32 side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-07 10:51:21 +09:00
Alexandre Julliard 8865f4a4ec user32: Synthesize text clipboard formats on the user32 side.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-07 00:34:24 +09:00
Alexandre Julliard fa06ecbfce user32: Implement GetUpdatedClipboardFormats.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-06 15:35:49 +09:00
Alexandre Julliard bddab0e7f8 server: Add a release_clipboard request, and notify the owner and viewer on release.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-01 22:02:04 +09:00
Alexandre Julliard c6f12bd9cc server: Notify all listeners when the contents of the clipboard have changed.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-30 16:33:04 +09:00
Alexandre Julliard 35537b1d45 server: Implement Add/RemoveClipboardFormatListener.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-29 23:54:40 +09:00
Alexandre Julliard 19d16a7cb1 server: Add some validation of clipboard window handles.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-29 21:31:50 +09:00
Alexandre Julliard 7888382e0a user32: Notify the clipboard viewer on close even if we are not the owner.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 22:09:08 +09:00
Alexandre Julliard d9df977006 user32: Don't disallow delayed rendering even when not the clipboard owner.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-23 17:57:50 +09:00
Alexandre Julliard 42c221db6c user32: Don't allow SetClipboardData if the clipboard is not open.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-23 17:35:18 +09:00
Alexandre Julliard 79d2e0a9be server: Add a request to return clipboard information.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-23 16:29:00 +09:00
Alexandre Julliard 67ee1d3fd8 user32: Get rid of the CLIPBOARDINFO structure.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-22 23:05:21 +09:00
Alexandre Julliard 98b24dcb50 server: Add a separate request to set the clipboard viewer.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-22 23:05:20 +09:00
Alexandre Julliard 7258793169 server: Add separate requests for opening and closing the clipboard.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-22 16:20:53 +09:00
Vincent Povirk b68e03f9c9 user32: Don't regard the clipboard as changed if we don't own it.
I ran into a situation where user32 will call EndClipboardUpdate even though
the clipboard hasn't changed. It went something like this:
* Program A acquires the clipboard and adds some delay-rendered data.
* Program B requests data from the clipboard, causing program A to receive
  WM_RENDERFORMAT.
* Program A calls SetClipboardData to fulfill the request, setting
  bCBHasChanged to TRUE.
* Program C acquires the clipboard.
* Program A opens the clipboard to enumerate the formats. When it closes the
  clipboard, EndClipboardUpdate is called.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-21 00:53:52 +09:00
Alexandre Julliard 3d7aa246d5 server: Add a request to empty the clipboard. 2015-06-09 22:09:56 +09:00