Signed-off-by: Jacek Caban jacek@codeweavers.com --- dlls/user32/message.c | 11 +- dlls/user32/user_main.c | 3 + dlls/user32/user_private.h | 6 +- dlls/user32/winproc.c | 6 + dlls/win32u/message.c | 407 ++++++++++++++++++++++++++++++++++- dlls/win32u/ntuser_private.h | 6 + dlls/win32u/sysparams.c | 10 + dlls/win32u/win32u_private.h | 2 + include/ntuser.h | 12 ++ 9 files changed, 455 insertions(+), 8 deletions(-)
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=111649
Your paranoid android.
=== debian11 (32 bit report) ===
user32: win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11763: Test failed: 010200FC: expected NOT topmost win.c:11787: Test failed: 010200FC: expected NOT topmost win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11606: Test failed: 3: hwnd 00070148 is still topmost win.c:11606: Test failed: 4: hwnd 010200FC is still topmost win.c:11810: Test failed: 001C00C6: expected NOT topmost win.c:11811: Test failed: 010200FC: expected next 00070148, got 00000000 win.c:11811: Test failed: 010200FC: expected NOT topmost win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11606: Test failed: 3: hwnd 00070148 is still topmost win.c:11606: Test failed: 4: hwnd 010200FC is still topmost win.c:11834: Test failed: 001C00C6: expected NOT topmost win.c:11835: Test failed: 010200FC: expected next 00070148, got 00000000 win.c:11835: Test failed: 010200FC: expected NOT topmost win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11606: Test failed: 3: hwnd 00070148 is still topmost win.c:11606: Test failed: 4: hwnd 010200FC is still topmost win.c:11869: Test failed: 010200FC: expected next 00070148, got 00000000 win.c:11869: Test failed: 010200FC: expected NOT topmost win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11606: Test failed: 3: hwnd 00070148 is still topmost win.c:11606: Test failed: 4: hwnd 010200FC is still topmost win.c:11892: Test failed: 010200FC: expected NOT topmost win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11606: Test failed: 3: hwnd 00070148 is still topmost win.c:11606: Test failed: 4: hwnd 010200FC is still topmost win.c:11903: Test failed: 010200FC: expected next 00070148, got 00000000 win.c:11903: Test failed: 010200FC: expected NOT topmost win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11606: Test failed: 3: hwnd 00070148 is still topmost win.c:11606: Test failed: 4: hwnd 010200FC is still topmost win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11606: Test failed: 3: hwnd 00070148 is still topmost win.c:11606: Test failed: 4: hwnd 010200FC is still topmost win.c:11606: Test failed: 1: hwnd 001C00C6 is still topmost win.c:11606: Test failed: 2: hwnd 000C00CC is still topmost win.c:11606: Test failed: 3: hwnd 00070148 is still topmost win.c:11606: Test failed: 4: hwnd 010200FC is still topmost
=== debian11 (32 bit Chinese:China report) ===
user32: input.c:2793: Test failed: 4: unexpected WM_MOUSEMOVE message input.c:2521: Test failed: 9: foreground process expected WM_MOUSEMOVE message input.c:2793: Test failed: 9: unexpected WM_MOUSEMOVE message input.c:2804: Test failed: 9: Unexpected cursor movement input.c:2521: Test failed: 10: foreground process expected WM_MOUSEMOVE message input.c:2521: Test failed: 11: foreground process expected WM_MOUSEMOVE message input.c:2521: Test failed: 12: foreground process expected WM_MOUSEMOVE message input.c:1733: Test failed: expected to get 64 mouse move points but got -1 input.c:1744: Test failed: expected to get 64 mouse move points but got -1 win.c:11361: Test failed: expected 018F00D0, got 0061009A
=== debian11 (32 bit WoW report) ===
user32: input.c:2160: Test failed: GetRawInputBuffer returned 8 input.c:2164: Test failed: Unexpected rawinput data: 2 input.c:2217: Test failed: Unexpected rawinput data: -10 input.c:1628: Test failed: wrong position 5, expected 61x122 got 62x124 input.c:1628: Test failed: wrong position 7, expected 59x118 got 61x122 input.c:1628: Test failed: wrong position 9, expected 57x114 got 60x120 input.c:1628: Test failed: wrong position 11, expected 55x110 got 59x118 input.c:1628: Test failed: wrong position 13, expected 53x106 got 58x116 input.c:1628: Test failed: wrong position 15, expected 51x102 got 57x114 input.c:1628: Test failed: wrong position 16, expected 50x100 got 58x116 input.c:1628: Test failed: wrong position 17, expected 49x98 got 56x112 input.c:1628: Test failed: wrong position 21, expected 45x90 got 54x108 input.c:1628: Test failed: wrong position 23, expected 43x86 got 53x106 input.c:1628: Test failed: wrong position 25, expected 41x82 got 52x104 input.c:1628: Test failed: wrong position 29, expected 37x74 got 50x100 input.c:1628: Test failed: wrong position 30, expected 36x72 got 51x102 input.c:1628: Test failed: wrong position 31, expected 35x70 got 49x98 input.c:1628: Test failed: wrong position 33, expected 33x66 got 48x96 input.c:1628: Test failed: wrong position 35, expected 31x62 got 47x94 input.c:1628: Test failed: wrong position 36, expected 30x60 got 48x96 input.c:1628: Test failed: wrong position 37, expected 29x58 got 46x92 input.c:1628: Test failed: wrong position 38, expected 28x56 got 47x94 input.c:1628: Test failed: wrong position 39, expected 27x54 got 45x90 input.c:1628: Test failed: wrong position 42, expected 24x48 got 45x90 input.c:1628: Test failed: wrong position 43, expected 23x46 got 43x86 input.c:1628: Test failed: wrong position 44, expected 22x44 got 44x88 input.c:1628: Test failed: wrong position 45, expected 21x42 got 42x84 input.c:1628: Test failed: wrong position 47, expected 19x38 got 41x82 input.c:1628: Test failed: wrong position 48, expected 18x36 got 42x84 input.c:1628: Test failed: wrong position 49, expected 17x34 got 40x80 input.c:1628: Test failed: wrong position 51, expected 15x30 got 39x78 input.c:1628: Test failed: wrong position 53, expected 13x26 got 38x76 input.c:1628: Test failed: wrong position 55, expected 11x22 got 37x74 input.c:1628: Test failed: wrong position 57, expected 9x18 got 36x72 input.c:1628: Test failed: wrong position 58, expected 8x16 got 35x70 input.c:1628: Test failed: wrong position 59, expected 7x14 got 37x74
=== debian11 (64 bit WoW report) ===
user32: win.c:11361: Test failed: expected 0000000001FD0160, got 000000000049007E win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11763: Test failed: 00000000007800F8: expected NOT topmost win.c:11787: Test failed: 00000000007800F8: expected NOT topmost win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11606: Test failed: 3: hwnd 0000000000070148 is still topmost win.c:11606: Test failed: 4: hwnd 00000000007800F8 is still topmost win.c:11810: Test failed: 00000000001D00AC: expected NOT topmost win.c:11811: Test failed: 00000000007800F8: expected next 0000000000070148, got 0000000000000000 win.c:11811: Test failed: 00000000007800F8: expected NOT topmost win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11606: Test failed: 3: hwnd 0000000000070148 is still topmost win.c:11606: Test failed: 4: hwnd 00000000007800F8 is still topmost win.c:11834: Test failed: 00000000001D00AC: expected NOT topmost win.c:11835: Test failed: 00000000007800F8: expected next 0000000000070148, got 0000000000000000 win.c:11835: Test failed: 00000000007800F8: expected NOT topmost win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11606: Test failed: 3: hwnd 0000000000070148 is still topmost win.c:11606: Test failed: 4: hwnd 00000000007800F8 is still topmost win.c:11869: Test failed: 00000000007800F8: expected next 0000000000070148, got 0000000000000000 win.c:11869: Test failed: 00000000007800F8: expected NOT topmost win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11606: Test failed: 3: hwnd 0000000000070148 is still topmost win.c:11606: Test failed: 4: hwnd 00000000007800F8 is still topmost win.c:11892: Test failed: 00000000007800F8: expected NOT topmost win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11606: Test failed: 3: hwnd 0000000000070148 is still topmost win.c:11606: Test failed: 4: hwnd 00000000007800F8 is still topmost win.c:11903: Test failed: 00000000007800F8: expected next 0000000000070148, got 0000000000000000 win.c:11903: Test failed: 00000000007800F8: expected NOT topmost win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11606: Test failed: 3: hwnd 0000000000070148 is still topmost win.c:11606: Test failed: 4: hwnd 00000000007800F8 is still topmost win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11606: Test failed: 3: hwnd 0000000000070148 is still topmost win.c:11606: Test failed: 4: hwnd 00000000007800F8 is still topmost win.c:11606: Test failed: 1: hwnd 00000000001D00AC is still topmost win.c:11606: Test failed: 2: hwnd 0000000000B900C0 is still topmost win.c:11606: Test failed: 3: hwnd 0000000000070148 is still topmost win.c:11606: Test failed: 4: hwnd 00000000007800F8 is still topmost
On Thu, Mar 31, 2022 at 10:45:20AM +0200, Jacek Caban wrote:
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c index 0253eacc152..841ceb85c6d 100644 --- a/dlls/win32u/message.c +++ b/dlls/win32u/message.c
+/* unpack a potentially 64-bit pointer, returning 0 when truncated */ +static inline void *unpack_ptr( ULONGLONG ptr64 ) +{
- if ((ULONG_PTR)ptr64 != ptr64) return 0;
- return (void *)(ULONG_PTR)ptr64;
+}
+/* make sure that the buffer contains a valid null-terminated Unicode string */ +static inline BOOL check_string( LPCWSTR str, size_t size ) +{
- for (size /= sizeof(WCHAR); size; size--, str++)
if (!*str) return TRUE;
- return FALSE;
+}
Hi Jacek,
These two functions are unused.
Huw.
Hi Huw,
On 3/31/22 15:10, Huw Davies wrote:
Hi Jacek, These two functions are unused.
Good catch, I sent a fixed version.
Thanks,
Jacek