From 6efe017a3a3bae2252273fe38667495e87fac8c4 Mon Sep 17 00:00:00 2001 From: "Carl J. Bialorucki" Date: Thu, 18 Dec 2025 13:11:48 -0600 Subject: [PATCH] [INCLUDE/PSDK][INCLUDE/WINE] Header changes needed for user32 winetest sync - psdk/mmsystem.h: Add a #ifndef guard around SC_SCREENSAVE, MS public headers have the same guard - psdk/ole2.h: Add guards around CreateDataAdviseHolder that are similar to the guards used in MS public headers - psdk/winuser.h: Add missing defines, use DWORD and LONG casts to fix test failures on x64. These same casts exist in MS public headers - wine/test.h: Add defines for winetest_platform_is_wine, flaky, and flaky_wine. The flaky definitions depend on flaky_if, which is a stub that does nothing. --- sdk/include/psdk/mmsystem.h | 2 + sdk/include/psdk/ole2.h | 2 + sdk/include/psdk/winuser.h | 90 +++++++++++++++++++++++++++++-------- sdk/include/wine/test.h | 5 +++ 4 files changed, 81 insertions(+), 18 deletions(-) diff --git a/sdk/include/psdk/mmsystem.h b/sdk/include/psdk/mmsystem.h index 08221ad0a10..a7276360e3e 100644 --- a/sdk/include/psdk/mmsystem.h +++ b/sdk/include/psdk/mmsystem.h @@ -930,7 +930,9 @@ extern "C" { #define QUERYROPSUPPORT 40 #define SELECTDIB 41 #define DIBINDEX(n) MAKELONG((n),0x10FF) +#ifndef SC_SCREENSAVE #define SC_SCREENSAVE 0xF140 +#endif #define CAPS1 94 #define C1_TRANSPARENT 1 #ifndef SEEK_SET diff --git a/sdk/include/psdk/ole2.h b/sdk/include/psdk/ole2.h index cc75afdf14c..b537a52eb06 100644 --- a/sdk/include/psdk/ole2.h +++ b/sdk/include/psdk/ole2.h @@ -100,7 +100,9 @@ HRESULT WINAPI ReadFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT* pcf, LPOLESTR* HRESULT WINAPI OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite, LPVOID* ppvObj); HRESULT WINAPI GetHGlobalFromILockBytes(LPLOCKBYTES plkbyt, HGLOBAL* phglobal); HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPLOCKBYTES* pplkbyt); +#if !defined(_OBJBASE_H_) || !defined(CreateDataAdviseHolder) HRESULT WINAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER* ppDAHolder); +#endif HGLOBAL WINAPI OleGetIconOfClass(REFCLSID rclsid, LPOLESTR lpszLabel, BOOL fUseTypeAsLabel); HGLOBAL WINAPI OleGetIconOfFile(LPOLESTR lpszPath, BOOL fUseFileAsLabel); HGLOBAL WINAPI OleMetafilePictFromIconAndLabel(HICON hIcon, LPOLESTR lpszLabel, LPOLESTR lpszSourceFile, UINT iIconIndex); diff --git a/sdk/include/psdk/winuser.h b/sdk/include/psdk/winuser.h index 7602917570f..ca1e1cdca4d 100644 --- a/sdk/include/psdk/winuser.h +++ b/sdk/include/psdk/winuser.h @@ -2715,20 +2715,20 @@ typedef enum tagHANDEDNESS #if (WINVER >= 0x0500) #define CHILDID_SELF 0 -#define OBJID_WINDOW 0x00000000 -#define OBJID_SYSMENU 0xFFFFFFFF -#define OBJID_TITLEBAR 0xFFFFFFFE -#define OBJID_MENU 0xFFFFFFFD -#define OBJID_CLIENT 0xFFFFFFFC -#define OBJID_VSCROLL 0xFFFFFFFB -#define OBJID_HSCROLL 0xFFFFFFFA -#define OBJID_SIZEGRIP 0xFFFFFFF9 -#define OBJID_CARET 0xFFFFFFF8 -#define OBJID_CURSOR 0xFFFFFFF7 -#define OBJID_ALERT 0xFFFFFFF6 -#define OBJID_SOUND 0xFFFFFFF5 -#define OBJID_QUERYCLASSNAMEIDX 0xFFFFFFF4 -#define OBJID_NATIVEOM 0xFFFFFF0 +#define OBJID_WINDOW ((LONG)0x00000000) +#define OBJID_SYSMENU ((LONG)0xFFFFFFFF) +#define OBJID_TITLEBAR ((LONG)0xFFFFFFFE) +#define OBJID_MENU ((LONG)0xFFFFFFFD) +#define OBJID_CLIENT ((LONG)0xFFFFFFFC) +#define OBJID_VSCROLL ((LONG)0xFFFFFFFB) +#define OBJID_HSCROLL ((LONG)0xFFFFFFFA) +#define OBJID_SIZEGRIP ((LONG)0xFFFFFFF9) +#define OBJID_CARET ((LONG)0xFFFFFFF8) +#define OBJID_CURSOR ((LONG)0xFFFFFFF7) +#define OBJID_ALERT ((LONG)0xFFFFFFF6) +#define OBJID_SOUND ((LONG)0xFFFFFFF5) +#define OBJID_QUERYCLASSNAMEIDX ((LONG)0xFFFFFFF4) +#define OBJID_NATIVEOM ((LONG)0xFFFFFF0) #define GUI_CARETBLINKING 0x00000001 #define GUI_INMOVESIZE 0x00000002 #define GUI_INMENUMODE 0x00000004 @@ -2874,6 +2874,8 @@ typedef enum tagHANDEDNESS #define EVENT_MAX 0x7fffffff #endif /* (WINVER >= 0x0500) */ +#define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff) + #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0490) #define ASFW_ANY ((DWORD)-1) #define LSFW_LOCK 1 @@ -2952,6 +2954,9 @@ typedef enum tagHANDEDNESS #define RIDI_PREPARSEDDATA 0x20000005 #define RIDI_DEVICENAME 0x20000007 #define RIDI_DEVICEINFO 0x2000000b +#define RIDEV_EXINPUTSINK 0x00001000 +#define RIDEV_DEVNOTIFY 0x00002000 +#endif #define RIDEV_REMOVE 0x00000001 #define RIDEV_EXCLUDE 0x00000010 #define RIDEV_PAGEONLY 0x00000020 @@ -2960,7 +2965,7 @@ typedef enum tagHANDEDNESS #define RIDEV_CAPTUREMOUSE 0x00000200 #define RIDEV_NOHOTKEYS 0x00000200 #define RIDEV_APPKEYS 0x00000400 -#endif +#define RIDEV_EXMODEMASK 0x000000F0 #define STATE_SYSTEM_UNAVAILABLE 0x00000001 #define STATE_SYSTEM_SELECTED 0x00000002 #define STATE_SYSTEM_FOCUSED 0x00000004 @@ -4107,9 +4112,9 @@ typedef struct tagRID_DEVICE_INFO { #define AnsiLowerBuff CharLowerBuffA #define AnsiNext CharNextA #define AnsiPrev CharPrevA -#define MAKELPARAM(l,h) ((LPARAM)MAKELONG(l,h)) -#define MAKEWPARAM(l,h) ((WPARAM)MAKELONG(l,h)) -#define MAKELRESULT(l,h) ((LRESULT)MAKELONG(l,h)) +#define MAKELPARAM(l,h) ((LPARAM)(DWORD)MAKELONG(l,h)) +#define MAKEWPARAM(l,h) ((WPARAM)(DWORD)MAKELONG(l,h)) +#define MAKELRESULT(l,h) ((LRESULT)(DWORD)MAKELONG(l,h)) #define POINTSTOPOINT(p,ps) { \ (p).x=LOWORD(*(DWORD *)&ps); \ (p).y=HIWORD(*(DWORD *)&ps); \ @@ -4151,6 +4156,52 @@ enum tagPOINTER_INPUT_TYPE { PT_TOUCHPAD }; typedef DWORD POINTER_INPUT_TYPE; +typedef UINT32 POINTER_FLAGS; +typedef enum tagPOINTER_BUTTON_CHANGE_TYPE +{ + POINTER_CHANGE_NONE, + POINTER_CHANGE_FIRSTBUTTON_DOWN, + POINTER_CHANGE_FIRSTBUTTON_UP, + POINTER_CHANGE_SECONDBUTTON_DOWN, + POINTER_CHANGE_SECONDBUTTON_UP, + POINTER_CHANGE_THIRDBUTTON_DOWN, + POINTER_CHANGE_THIRDBUTTON_UP, + POINTER_CHANGE_FOURTHBUTTON_DOWN, + POINTER_CHANGE_FOURTHBUTTON_UP, + POINTER_CHANGE_FIFTHBUTTON_DOWN, + POINTER_CHANGE_FIFTHBUTTON_UP, +} POINTER_BUTTON_CHANGE_TYPE; +typedef struct tagPOINTER_INFO +{ + POINTER_INPUT_TYPE pointerType; + UINT32 pointerId; + UINT32 frameId; + POINTER_FLAGS pointerFlags; + HANDLE sourceDevice; + HWND hwndTarget; + POINT ptPixelLocation; + POINT ptHimetricLocation; + POINT ptPixelLocationRaw; + POINT ptHimetricLocationRaw; + DWORD dwTime; + UINT32 historyCount; + INT32 InputData; + DWORD dwKeyStates; + UINT64 PerformanceCount; + POINTER_BUTTON_CHANGE_TYPE ButtonChangeType; +} POINTER_INFO; + +#define POINTER_MESSAGE_FLAG_NEW 0x00000001 +#define POINTER_MESSAGE_FLAG_INRANGE 0x00000002 +#define POINTER_MESSAGE_FLAG_INCONTACT 0x00000004 +#define POINTER_MESSAGE_FLAG_FIRSTBUTTON 0x00000010 +#define POINTER_MESSAGE_FLAG_SECONDBUTTON 0x00000020 +#define POINTER_MESSAGE_FLAG_THIRDBUTTON 0x00000040 +#define POINTER_MESSAGE_FLAG_FOURTHBUTTON 0x00000080 +#define POINTER_MESSAGE_FLAG_FIFTHBUTTON 0x00000100 +#define POINTER_MESSAGE_FLAG_PRIMARY 0x00002000 +#define POINTER_MESSAGE_FLAG_CONFIDENCE 0x00004000 +#define POINTER_MESSAGE_FLAG_CANCELED 0x00008000 #endif /* WINVER >= 0x0602 */ @@ -4968,6 +5019,9 @@ HDC WINAPI GetWindowDC(_In_opt_ HWND); BOOL WINAPI GetWindowPlacement(_In_ HWND, _Inout_ WINDOWPLACEMENT*); BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT); int WINAPI GetWindowRgn(_In_ HWND, _In_ HRGN); +#if(_WIN32_WINNT >= 0x501) +int WINAPI GetWindowRgnBox(_In_ HWND, _Out_ LPRECT); +#endif #define GetWindowTask(hWnd) ((HANDLE)GetWindowThreadProcessId(hWnd, NULL)) _Ret_range_(0, nMaxCount) diff --git a/sdk/include/wine/test.h b/sdk/include/wine/test.h index 14e2ed2f356..c6a1c8111fd 100644 --- a/sdk/include/wine/test.h +++ b/sdk/include/wine/test.h @@ -202,6 +202,11 @@ extern void winetest_pop_context(void); #define skip_2k3_crash if (_winver < 0x600) skip("Test skipped, because it crashes on win 2003\n"); else #define skip_2k3_fail if (_winver < 0x600) skip("Test skipped, because it fails on win 2003\n"); else +#define winetest_platform_is_wine !strcmp(winetest_platform, "wine") +#define flaky_if(is_flaky) // TODO: define me +#define flaky flaky_if(TRUE) +#define flaky_wine flaky_if(winetest_platform_is_wine) + #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) #ifdef NONAMELESSUNION