From: Martino Fontana tinozzo123@gmail.com
--- dlls/dinput/tests/device8.c | 136 +++++++++++++++++++++++++++++++++- dlls/dinput/tests/joystick8.c | 3 + 2 files changed, 137 insertions(+), 2 deletions(-)
diff --git a/dlls/dinput/tests/device8.c b/dlls/dinput/tests/device8.c index 6bfc88f01cc..0f7a2b6532d 100644 --- a/dlls/dinput/tests/device8.c +++ b/dlls/dinput/tests/device8.c @@ -1324,6 +1324,10 @@ static void test_sys_mouse( DWORD version ) ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_FFLOAD returned %#lx\n", hr ); hr = IDirectInputDevice8_GetProperty( device, DIPROP_GRANULARITY, &prop_dword.diph ); ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_GRANULARITY returned %#lx\n", hr ); + hr = IDirectInputDevice8_GetProperty( device, DIPROP_SCANCODE, &prop_dword.diph ); + todo_wine_if( version >= 0x800 ) + ok( hr == (version < 0x800 ? DIERR_UNSUPPORTED : DIERR_INVALIDPARAM), + "GetProperty DIPROP_SCANCODE returned %#lx\n", hr );
prop_dword.diph.dwHow = DIPH_BYUSAGE; prop_dword.diph.dwObj = MAKELONG( HID_USAGE_GENERIC_X, HID_USAGE_PAGE_GENERIC ); @@ -2305,12 +2309,20 @@ static void test_dik_codes( IDirectInputDevice8W *device, HANDLE event, HWND hwn }; DIDEVCAPS caps = {.dwSize = sizeof(DIDEVCAPS)}; const struct key2dik *map; + DIPROPDWORD prop_dword = + { + .diph = + { + .dwSize = sizeof(DIPROPDWORD), + .dwHeaderSize = sizeof(DIPROPHEADER), + .dwHow = DIPH_BYOFFSET, + }, + }; BYTE key_state[256]; HKL hkl, old_hkl; - WORD vkey, scan; HRESULT hr; ULONG res; - UINT i, j; + UINT vkey, scan, i, j;
hr = IDirectInputDevice_SetDataFormat( device, &c_dfDIKeyboard ); ok( hr == DI_OK, "SetDataFormat returned %#lx\n", hr ); @@ -2352,6 +2364,18 @@ static void test_dik_codes( IDirectInputDevice8W *device, HANDLE event, HWND hwn todo_wine_if( map[j].todo ) ok( scan, "MapVirtualKeyExA failed\n" );
+ prop_dword.diph.dwObj = map[j].dik; + hr = IDirectInputDevice8_GetProperty( device, DIPROP_SCANCODE, &prop_dword.diph ); + if (version < 0x0800) + ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_SCANCODE returned %#lx\n", hr ); + else + { + todo_wine + ok( hr == DI_OK, "GetProperty DIPROP_SCANCODE returned %#lx\n", hr ); + todo_wine + ok( prop_dword.dwData == scan, "got %#lx expected %#x\n", prop_dword.dwData, scan ); + } + keybd_event( vkey, scan, 0, 0 ); res = WaitForSingleObject( event, 100 ); if (i == 0 && j == 0 && res == WAIT_TIMEOUT) /* Acquire is asynchronous */ @@ -2385,6 +2409,107 @@ static void test_dik_codes( IDirectInputDevice8W *device, HANDLE event, HWND hwn ok( hr == DI_OK, "Unacquire returned %#lx\n", hr ); }
+static void test_scan_codes( IDirectInputDevice8W *device, HANDLE event, HWND hwnd, DWORD version ) +{ + static const struct dik2scan + { + BYTE dik; BOOL found; DWORD result; + } + dik2scan_en[] = + { + { DIK_NUMLOCK, TRUE, 0x451DE1 }, + { DIK_PAUSE, TRUE, 0x45 }, + { DIK_CIRCUMFLEX, TRUE, 0x10E0 }, + { DIK_KANA, FALSE, 0 }, + }, + dik2scan_ja[] = + { + { DIK_NUMLOCK, TRUE, 0x451DE1 }, + { DIK_PAUSE, TRUE, 0x45 }, + { DIK_CIRCUMFLEX, TRUE, 0x0d }, + { DIK_KANA, TRUE, 0x70 }, + }; + static const struct + { + LANGID langid; + const struct dik2scan *map; + DWORD type; + } tests[] = + { + { MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), dik2scan_en, DIDEVTYPEKEYBOARD_PCENH }, + { MAKELANGID(LANG_JAPANESE, SUBLANG_JAPANESE_JAPAN), dik2scan_ja, DIDEVTYPEKEYBOARD_JAPAN106 }, + }; + DIDEVCAPS caps = {.dwSize = sizeof(DIDEVCAPS)}; + const struct dik2scan *map; + DIPROPDWORD prop_dword = + { + .diph = + { + .dwSize = sizeof(DIPROPDWORD), + .dwHeaderSize = sizeof(DIPROPHEADER), + .dwHow = DIPH_BYOFFSET, + }, + }; + HKL hkl, old_hkl; + HRESULT hr; + UINT i, j; + + hr = IDirectInputDevice_SetDataFormat( device, &c_dfDIKeyboard ); + ok( hr == DI_OK, "SetDataFormat returned %#lx\n", hr ); + hr = IDirectInputDevice_Acquire( device ); + ok( hr == DI_OK, "Acquire returned %#lx\n", hr ); + hr = IDirectInputDevice_GetCapabilities( device, &caps ); + ok( hr == DI_OK, "GetDeviceInstance returned %#lx\n", hr ); + + for (i = 0; i < ARRAY_SIZE(tests); ++i) + { + if (tests[i].type != GET_DIDEVICE_SUBTYPE( caps.dwDevType )) + { + skip( "keyboard type %#x doesn't match for lang %#x\n", + GET_DIDEVICE_SUBTYPE( caps.dwDevType ), tests[i].langid ); + continue; + } + + winetest_push_context( "lang %#x", tests[i].langid ); + + hkl = activate_keyboard_layout( tests[i].langid, &old_hkl ); + if (LOWORD(old_hkl) != MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT) || + LOWORD(hkl) != tests[i].langid) goto skip_key_tests; + + map = tests[i].map; + for (j = 0; j < ARRAY_SIZE(dik2scan_en); j++) + { + winetest_push_context( "dik %#x", map[j].dik ); + + prop_dword.diph.dwObj = map[j].dik; + hr = IDirectInputDevice8_GetProperty( device, DIPROP_SCANCODE, &prop_dword.diph ); + + if (!map[j].found) + todo_wine ok( hr == DIERR_NOTFOUND, "GetProperty DIPROP_SCANCODE returned %#lx\n", hr ); + else if (version < 0x0800) + ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_SCANCODE returned %#lx\n", hr ); + else + { + todo_wine + ok( hr == DI_OK, "GetProperty DIPROP_SCANCODE returned %#lx\n", hr ); + todo_wine + ok( prop_dword.dwData == map[j].result, "got %#lx expected %#lx\n", + prop_dword.dwData, map[j].result ); + } + + winetest_pop_context(); + } + + skip_key_tests: + ActivateKeyboardLayout( old_hkl, 0 ); + + winetest_pop_context(); + } + + hr = IDirectInputDevice8_Unacquire( device ); + ok( hr == DI_OK, "Unacquire returned %#lx\n", hr ); +} + #define check_member_str_( file, line, val, exp, member ) \ ok_(file, line)( !strcmp( (val).member, (exp).member ), "got " #member " %s\n", \ debugstr_a((val).member) ) @@ -2707,11 +2832,17 @@ static void test_sys_keyboard( DWORD version ) ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_FFLOAD returned %#lx\n", hr ); hr = IDirectInputDevice8_GetProperty( device, DIPROP_GRANULARITY, &prop_dword.diph ); ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_GRANULARITY returned %#lx\n", hr ); + hr = IDirectInputDevice8_GetProperty( device, DIPROP_SCANCODE, &prop_dword.diph ); + todo_wine_if( version >= 0x800 ) + ok( hr == (version < 0x800 ? DIERR_UNSUPPORTED : DIERR_INVALIDPARAM), + "GetProperty DIPROP_SCANCODE returned %#lx\n", hr );
prop_dword.diph.dwHow = DIPH_BYUSAGE; prop_dword.diph.dwObj = MAKELONG( HID_USAGE_KEYBOARD_LCTRL, HID_USAGE_PAGE_KEYBOARD ); hr = IDirectInputDevice8_GetProperty( device, DIPROP_GRANULARITY, &prop_dword.diph ); ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_GRANULARITY returned %#lx\n", hr ); + hr = IDirectInputDevice8_GetProperty( device, DIPROP_SCANCODE, &prop_dword.diph ); + ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_SCANCODE returned %#lx\n", hr );
prop_dword.diph.dwHow = DIPH_BYOFFSET; prop_dword.diph.dwObj = 1; @@ -2923,6 +3054,7 @@ skip_key_tests: ActivateKeyboardLayout( old_hkl, 0 );
test_dik_codes( device, event, hwnd, version ); + test_scan_codes( device, event, hwnd, version );
CloseHandle( event ); DestroyWindow( hwnd ); diff --git a/dlls/dinput/tests/joystick8.c b/dlls/dinput/tests/joystick8.c index be6f432808f..b18fd17c857 100644 --- a/dlls/dinput/tests/joystick8.c +++ b/dlls/dinput/tests/joystick8.c @@ -2109,6 +2109,9 @@ static void test_simple_joystick( DWORD version ) ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_SATURATION returned %#lx\n", hr ); hr = IDirectInputDevice8_GetProperty( device, DIPROP_CALIBRATIONMODE, &prop_dword.diph ); ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_CALIBRATIONMODE returned %#lx\n", hr ); + hr = IDirectInputDevice8_GetProperty( device, DIPROP_SCANCODE, &prop_dword.diph ); + ok( hr == (version < 0x800 ? DIERR_UNSUPPORTED : DIERR_INVALIDPARAM), + "GetProperty DIPROP_SCANCODE returned %#lx\n", hr ); hr = IDirectInputDevice8_GetProperty( device, DIPROP_RANGE, &prop_range.diph ); ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_RANGE returned %#lx\n", hr ); hr = IDirectInputDevice8_GetProperty( device, DIPROP_KEYNAME, &prop_string.diph );
From: Martino Fontana tinozzo123@gmail.com
--- dlls/dinput/device.c | 10 +++++++++- dlls/dinput/device_private.h | 1 + dlls/dinput/keyboard.c | 15 +++++++++++++++ dlls/dinput/tests/device8.c | 6 ------ 4 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c index 9a9b559902a..6ea4ef5ef79 100644 --- a/dlls/dinput/device.c +++ b/dlls/dinput/device.c @@ -812,6 +812,7 @@ static HRESULT check_property( struct dinput_device *impl, const GUID *guid, con case (DWORD_PTR)DIPROP_LOGICALRANGE: case (DWORD_PTR)DIPROP_PHYSICALRANGE: case (DWORD_PTR)DIPROP_APPDATA: + case (DWORD_PTR)DIPROP_SCANCODE: if (impl->dinput->dwVersion < 0x0800) return DIERR_UNSUPPORTED; break; } @@ -885,10 +886,10 @@ static HRESULT check_property( struct dinput_device *impl, const GUID *guid, con break;
case (DWORD_PTR)DIPROP_KEYNAME: + case (DWORD_PTR)DIPROP_SCANCODE: if (header->dwHow == DIPH_DEVICE) return DIERR_INVALIDPARAM; break;
- case (DWORD_PTR)DIPROP_SCANCODE: case (DWORD_PTR)DIPROP_APPDATA: if (header->dwHow == DIPH_DEVICE) return DIERR_UNSUPPORTED; break; @@ -1061,6 +1062,12 @@ static BOOL get_object_property( struct dinput_device *device, UINT index, struc value->uData = properties->app_data; return DIENUM_STOP; } + case (DWORD_PTR)DIPROP_SCANCODE: + { + DIPROPDWORD *value = (DIPROPDWORD *)params->header; + value->dwData = properties->scan_code; + return DI_OK; + } }
return DIENUM_STOP; @@ -1097,6 +1104,7 @@ static HRESULT dinput_device_get_property( IDirectInputDevice8W *iface, const GU case (DWORD_PTR)DIPROP_KEYNAME: case (DWORD_PTR)DIPROP_CALIBRATIONMODE: case (DWORD_PTR)DIPROP_APPDATA: + case (DWORD_PTR)DIPROP_SCANCODE: hr = impl->vtbl->enum_objects( iface, &filter, object_mask, get_object_property, ¶ms ); if (FAILED(hr)) return hr; if (hr == DIENUM_CONTINUE) return DIERR_NOTFOUND; diff --git a/dlls/dinput/device_private.h b/dlls/dinput/device_private.h index feeade7def6..fa791f08a9d 100644 --- a/dlls/dinput/device_private.h +++ b/dlls/dinput/device_private.h @@ -69,6 +69,7 @@ struct object_properties UINT_PTR app_data; DWORD calibration_mode; DWORD granularity; + DWORD scan_code; };
enum device_status diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c index cbcbf94f0f6..8ec9dd47150 100644 --- a/dlls/dinput/keyboard.c +++ b/dlls/dinput/keyboard.c @@ -187,7 +187,10 @@ HRESULT keyboard_enum_device( DWORD type, DWORD flags, DIDEVICEINSTANCEW *instan
HRESULT keyboard_create_device( struct dinput *dinput, const GUID *guid, IDirectInputDevice8W **out ) { + DIDEVICEOBJECTINSTANCEW instance; struct keyboard *impl; + DWORD i, index, dik; + BYTE subtype; HRESULT hr;
TRACE( "dinput %p, guid %s, out %p.\n", dinput, debugstr_guid( guid ), out ); @@ -204,9 +207,21 @@ HRESULT keyboard_create_device( struct dinput *dinput, const GUID *guid, IDirect impl->base.caps.dwFirmwareRevision = 100; impl->base.caps.dwHardwareRevision = 100; if (dinput->dwVersion >= 0x0800) impl->base.use_raw_input = TRUE; + subtype = GET_DIDEVICE_SUBTYPE( impl->base.instance.dwDevType );
if (FAILED(hr = dinput_device_init_device_format( &impl->base.IDirectInputDevice8W_iface ))) goto failed;
+ for (i = 0, index = 0; i < 512; ++i) + { + if (!GetKeyNameTextW( i << 16, instance.tszName, ARRAY_SIZE(instance.tszName) )) continue; + if (!(dik = map_dik_code( i, 0, subtype, impl->base.dinput->dwVersion ))) continue; + + if (dik == DIK_NUMLOCK) impl->base.object_properties[index++].scan_code = 0x451de1; + else if (dik == DIK_PAUSE) impl->base.object_properties[index++].scan_code = 0x45; + else if (dik < 0x80) impl->base.object_properties[index++].scan_code = dik; + else impl->base.object_properties[index++].scan_code = (dik - 0x80) << 8 | 0x00e0; + } + *out = &impl->base.IDirectInputDevice8W_iface; return DI_OK;
diff --git a/dlls/dinput/tests/device8.c b/dlls/dinput/tests/device8.c index 0f7a2b6532d..85c0b79d70e 100644 --- a/dlls/dinput/tests/device8.c +++ b/dlls/dinput/tests/device8.c @@ -1325,7 +1325,6 @@ static void test_sys_mouse( DWORD version ) hr = IDirectInputDevice8_GetProperty( device, DIPROP_GRANULARITY, &prop_dword.diph ); ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_GRANULARITY returned %#lx\n", hr ); hr = IDirectInputDevice8_GetProperty( device, DIPROP_SCANCODE, &prop_dword.diph ); - todo_wine_if( version >= 0x800 ) ok( hr == (version < 0x800 ? DIERR_UNSUPPORTED : DIERR_INVALIDPARAM), "GetProperty DIPROP_SCANCODE returned %#lx\n", hr );
@@ -2370,9 +2369,7 @@ static void test_dik_codes( IDirectInputDevice8W *device, HANDLE event, HWND hwn ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_SCANCODE returned %#lx\n", hr ); else { - todo_wine ok( hr == DI_OK, "GetProperty DIPROP_SCANCODE returned %#lx\n", hr ); - todo_wine ok( prop_dword.dwData == scan, "got %#lx expected %#x\n", prop_dword.dwData, scan ); }
@@ -2490,9 +2487,7 @@ static void test_scan_codes( IDirectInputDevice8W *device, HANDLE event, HWND hw ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_SCANCODE returned %#lx\n", hr ); else { - todo_wine ok( hr == DI_OK, "GetProperty DIPROP_SCANCODE returned %#lx\n", hr ); - todo_wine ok( prop_dword.dwData == map[j].result, "got %#lx expected %#lx\n", prop_dword.dwData, map[j].result ); } @@ -2833,7 +2828,6 @@ static void test_sys_keyboard( DWORD version ) hr = IDirectInputDevice8_GetProperty( device, DIPROP_GRANULARITY, &prop_dword.diph ); ok( hr == DIERR_UNSUPPORTED, "GetProperty DIPROP_GRANULARITY returned %#lx\n", hr ); hr = IDirectInputDevice8_GetProperty( device, DIPROP_SCANCODE, &prop_dword.diph ); - todo_wine_if( version >= 0x800 ) ok( hr == (version < 0x800 ? DIERR_UNSUPPORTED : DIERR_INVALIDPARAM), "GetProperty DIPROP_SCANCODE returned %#lx\n", hr );
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=147640
Your paranoid android.
=== debian11b (64 bit WoW report) ===
user32: input.c:733: Test failed: peek: raw_legacy: 0: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x1, flags 0, vkey F, message WM_KEYDOWN, extra 0 input.c:733: Test failed: peek: raw_legacy: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x46, lparam 0x10001 input.c:733: Test failed: peek: raw_legacy: 0: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_CHAR, wparam 0x66, lparam 0x10001 input.c:734: Test failed: peek: raw_legacy: 0: got F: 0 input.c:733: Test failed: peek: raw_legacy: 1: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x2, flags 0x1, vkey F, message WM_KEYUP, extra 0 input.c:733: Test failed: peek: raw_legacy: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x46, lparam 0xffffffffc0020001 input.c:733: Test failed: peek: raw_vk_packet_legacy: 0: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x1, flags 0, vkey 0xe7, message WM_KEYDOWN, extra 0 input.c:733: Test failed: peek: raw_vk_packet_legacy: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0xe7, lparam 0x10001 input.c:734: Test failed: peek: raw_vk_packet_legacy: 0: got 0xe7: 0 input.c:733: Test failed: peek: raw_vk_packet_legacy: 1: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x2, flags 0x1, vkey 0xe7, message WM_KEYUP, extra 0 input.c:733: Test failed: peek: raw_vk_packet_legacy: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0xe7, lparam 0xffffffffc0020001 input.c:733: Test failed: peek: raw_unicode_legacy: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_CHAR, wparam 0x3c0, lparam 0x1 input.c:734: Test failed: peek: raw_unicode_legacy: 0: got 0xe7: 0 input.c:733: Test failed: peek: raw_unicode_vkey_ctrl_legacy: 0: test->expect 0 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0xc00001 input.c:734: Test failed: peek: raw_unicode_vkey_ctrl_legacy: 0: got VK_CONTROL: 0 input.c:734: Test failed: peek: raw_unicode_vkey_ctrl_legacy: 0: got VK_LCONTROL: 0 input.c:733: Test failed: peek: raw_unicode_vkey_ctrl_legacy: 1: test->expect 0 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc0c00001 input.c:733: Test failed: peek: raw_nolegacy: 0: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x1, flags 0, vkey F, message WM_KEYDOWN, extra 0 input.c:733: Test failed: peek: raw_nolegacy: 1: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x2, flags 0x1, vkey F, message WM_KEYUP, extra 0 input.c:733: Test failed: peek: raw_vk_packet_nolegacy: 0: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x1, flags 0, vkey 0xe7, message WM_KEYDOWN, extra 0 input.c:733: Test failed: peek: raw_vk_packet_nolegacy: 1: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x2, flags 0x1, vkey 0xe7, message WM_KEYUP, extra 0 input.c:733: Test failed: receive: raw_legacy: 0: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x1, flags 0, vkey F, message WM_KEYDOWN, extra 0 input.c:733: Test failed: receive: raw_legacy: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x46, lparam 0x10001 input.c:733: Test failed: receive: raw_legacy: 0: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_CHAR, wparam 0x66, lparam 0x10001 input.c:734: Test failed: receive: raw_legacy: 0: got F: 0 input.c:733: Test failed: receive: raw_legacy: 1: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x2, flags 0x1, vkey F, message WM_KEYUP, extra 0 input.c:733: Test failed: receive: raw_legacy: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x46, lparam 0xffffffffc0020001 input.c:733: Test failed: receive: raw_vk_packet_legacy: 0: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x1, flags 0, vkey 0xe7, message WM_KEYDOWN, extra 0 input.c:733: Test failed: receive: raw_vk_packet_legacy: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0xe7, lparam 0x10001 input.c:734: Test failed: receive: raw_vk_packet_legacy: 0: got 0xe7: 0 input.c:733: Test failed: receive: raw_vk_packet_legacy: 1: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x2, flags 0x1, vkey 0xe7, message WM_KEYUP, extra 0 input.c:733: Test failed: receive: raw_vk_packet_legacy: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0xe7, lparam 0xffffffffc0020001 input.c:733: Test failed: receive: raw_unicode_legacy: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_CHAR, wparam 0x3c0, lparam 0x1 input.c:734: Test failed: receive: raw_unicode_legacy: 0: got 0xe7: 0 input.c:733: Test failed: receive: raw_unicode_vkey_ctrl_legacy: 0: test->expect 0 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0xc00001 input.c:734: Test failed: receive: raw_unicode_vkey_ctrl_legacy: 0: got VK_CONTROL: 0 input.c:734: Test failed: receive: raw_unicode_vkey_ctrl_legacy: 0: got VK_LCONTROL: 0 input.c:733: Test failed: receive: raw_unicode_vkey_ctrl_legacy: 1: test->expect 0 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc0c00001 input.c:733: Test failed: receive: raw_nolegacy: 0: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x1, flags 0, vkey F, message WM_KEYDOWN, extra 0 input.c:733: Test failed: receive: raw_nolegacy: 1: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x2, flags 0x1, vkey F, message WM_KEYUP, extra 0 input.c:733: Test failed: receive: raw_vk_packet_nolegacy: 0: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x1, flags 0, vkey 0xe7, message WM_KEYDOWN, extra 0 input.c:733: Test failed: receive: raw_vk_packet_nolegacy: 1: test->expect 0 (missing): got WM_INPUT key hwnd 0000000000000000, code 0, make_code 0x2, flags 0x1, vkey 0xe7, message WM_KEYUP, extra 0
This merge request was approved by Rémi Bernon.