From 83795a75307e8be70a03ab22248fc8d5a4fded40 Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Fri, 16 Jan 2004 02:02:38 +0000 Subject: [PATCH] The MSVC headers won't give a name to the nameless union of INPUT despite our request (NONAMELESSUNION). So define our own type and use it instead. Remove useless NONAMELESSSTRUCT. Fix signed/unsigned warning. --- dlls/user/tests/input.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/dlls/user/tests/input.c b/dlls/user/tests/input.c index 570ef59be25..9e8e2bcab0a 100644 --- a/dlls/user/tests/input.c +++ b/dlls/user/tests/input.c @@ -44,11 +44,8 @@ * */ -/* for definitions of INPUT */ #define _WIN32_WINNT 0x401 -#define NONAMELESSUNION -#define NONAMELESSSTRUCT #include "wine/test.h" #include "winbase.h" #include "winuser.h" @@ -79,13 +76,25 @@ int GETUPDOWN[]={0, 0, KEYEVENTF_KEYUP, 0, KEYEVENTF_KEYUP, 0, KEYEVENTF_KEYUP, /* matching descripts */ char *getdesc[]={"", "+alt","-alt","+X","-X","+shift","-shift","+ctrl","-ctrl"}; +/* The MSVC headers ignore our NONAMELESSUNION requests so we have to define our own type */ +typedef struct +{ + DWORD type; + union + { + MOUSEINPUT mi; + KEYBDINPUT ki; + HARDWAREINPUT hi; + } u; +} TEST_INPUT; + #define ADDTOINPUTS(kev) \ inputs[evtctr].type = INPUT_KEYBOARD; \ - inputs[evtctr].u.ki.wVk = GETVKEY[ kev]; \ - inputs[evtctr].u.ki.wScan = GETSCAN[ kev]; \ - inputs[evtctr].u.ki.dwFlags = GETUPDOWN[ kev]; \ - inputs[evtctr].u.ki.dwExtraInfo = 0; \ - inputs[evtctr].u.ki.time = ++timetag; \ + ((TEST_INPUT*)inputs)[evtctr].u.ki.wVk = GETVKEY[ kev]; \ + ((TEST_INPUT*)inputs)[evtctr].u.ki.wScan = GETSCAN[ kev]; \ + ((TEST_INPUT*)inputs)[evtctr].u.ki.dwFlags = GETUPDOWN[ kev]; \ + ((TEST_INPUT*)inputs)[evtctr].u.ki.dwExtraInfo = 0; \ + ((TEST_INPUT*)inputs)[evtctr].u.ki.time = ++timetag; \ if( kev) evtctr++; typedef struct { @@ -198,7 +207,8 @@ void do_test( HWND hwnd, int seqnr, KEV td[] ) KMSG expmsg[MAXKEYEVENTS]; MSG msg; char buf[100]; - int evtctr=0, kmctr, i; + UINT evtctr=0; + int kmctr, i; buf[0]='\0'; TrackSysKey=0; /* see input.c */ for( i = 0; i < MAXKEYEVENTS; i++) {