Skip to content

Commit 6dccccc

Browse files
committed
[USER32_VISTA][USER32] Sync some parts with WINE-10.0
1 parent 245513e commit 6dccccc

File tree

9 files changed

+747
-6
lines changed

9 files changed

+747
-6
lines changed

media/doc/WINESYNC.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,9 @@ user32 -
361361
win32ss/user/user32/windows/text.c # Forked (lstr.c)
362362
win32ss/user/user32/windows/winpos.c # Forked
363363

364+
win32ss/user/user32_vista/input.c # Synced to Wine-10.0
365+
win32ss/user/user32_vista/misc.c # Synced to Wine-10.0
366+
win32ss/user/user32_vista/win.c # Synced to Wine-10.0
364367
schannel.c
365368
dll/win32/schannel/schannel_wine.c # synced to wine-1.7.17 (secur32/schannel.c)
366369
dll/win32/schannel/secur32_wine.c # partial sync to wine-1.7.17 (secur32/secur32.c)

win32ss/user/user32/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ add_library(user32 MODULE
8181
${CMAKE_CURRENT_BINARY_DIR}/user32.def)
8282

8383
set_module_type(user32 win32dll UNICODE ENTRYPOINT DllMain 12)
84-
target_link_libraries(user32 user32_vista_static user32_wsprintf wine win32ksys ${PSEH_LIB})
84+
target_link_libraries(user32 user32_vista_static user32_optional_vista user32_wsprintf wine win32ksys ${PSEH_LIB})
8585
add_dependencies(user32 asm)
8686

8787
if(MSVC AND (ARCH STREQUAL "i386"))

win32ss/user/user32/user32.spec

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
; Functions exported by Win 2K3 SP2
22
@ stdcall ActivateKeyboardLayout(long long) NtUserActivateKeyboardLayout
3+
@ stdcall -version=0x600+ AddClipboardFormatListener(ptr)
34
@ stdcall AdjustWindowRect(ptr long long)
45
@ stdcall AdjustWindowRectEx(ptr long long long)
56
@ stdcall AlignRects(ptr long long long)
@@ -37,6 +38,8 @@
3738
@ stdcall ChangeDisplaySettingsW(ptr long)
3839
@ stdcall ChangeMenuA(long long ptr long long)
3940
@ stdcall ChangeMenuW(long long ptr long long)
41+
@ stdcall -version=0x600+ ChangeWindowMessageFilter(ptr long)
42+
@ stdcall -version=0x601+ ChangeWindowMessageFilterEx(ptr long long ptr)
4043
@ stdcall CharLowerA(str)
4144
@ stdcall CharLowerBuffA(str long)
4245
@ stdcall CharLowerBuffW(wstr long)
@@ -67,6 +70,8 @@
6770
@ stdcall ClipCursor(ptr) NtUserClipCursor
6871
@ stdcall CloseClipboard() NtUserCloseClipboard
6972
@ stdcall CloseDesktop(long) NtUserCloseDesktop
73+
@ stdcall -version=0x601+ CloseGestureInfoHandle(ptr)
74+
@ stdcall -version=0x601+ CloseTouchInputHandle(ptr)
7075
@ stdcall CloseWindow(long)
7176
@ stdcall CloseWindowStation(long) NtUserCloseWindowStation
7277
@ stdcall CopyAcceleratorTableA(long ptr long)
@@ -95,6 +100,7 @@
95100
@ stdcall CreateMenu()
96101
@ stdcall CreatePopupMenu()
97102
@ stdcall CreateSystemThreads(long)
103+
@ stdcall -version=0xA00+ CreateSyntheticPointerDevice(long long long)
98104
@ stdcall CreateWindowExA(long str str long long long long long long long long ptr)
99105
@ stdcall CreateWindowExW(long wstr wstr long long long long long long long long ptr)
100106
@ stdcall CreateWindowStationA(str long long ptr)
@@ -164,6 +170,8 @@
164170
@ stdcall DisableProcessWindowsGhosting()
165171
@ stdcall DispatchMessageA(ptr)
166172
@ stdcall DispatchMessageW(ptr)
173+
@ stdcall -version=0x600+ DisplayConfigGetDeviceInfo(ptr)
174+
@ stdcall -version=0x600+ DisplayConfigSetDeviceInfo(ptr)
167175
@ stdcall DisplayExitWindowsWarnings(long)
168176
@ stdcall DlgDirListA(long str long long long)
169177
@ stdcall DlgDirListComboBoxA(long ptr long long long)
@@ -225,6 +233,7 @@
225233
@ stdcall EnumWindowStationsW(ptr long)
226234
@ stdcall EnumWindows(ptr long)
227235
@ stdcall EqualRect(ptr ptr)
236+
@ stdcall -version=0x602+ EvaluateProximityToRect(ptr ptr ptr)
228237
@ stdcall ExcludeUpdateRgn(long long) NtUserExcludeUpdateRgn
229238
@ stdcall ExitWindowsEx(long long)
230239
@ stdcall FillRect(long ptr long)
@@ -276,17 +285,23 @@
276285
# GetDbgTagFlags
277286
@ stdcall GetDesktopWindow()
278287
@ stdcall GetDialogBaseUnits()
288+
@ stdcall -version=0x602+ GetDisplayAutoRotationPreferences(ptr)
289+
@ stdcall -version=0x600+ GetDisplayConfigBufferSizes(long ptr ptr)
279290
@ stdcall GetDlgCtrlID(long)
280291
@ stdcall GetDlgItem(long long)
281292
@ stdcall GetDlgItemInt(long long ptr long)
282293
@ stdcall GetDlgItemTextA(long long ptr long)
283294
@ stdcall GetDlgItemTextW(long long ptr long)
284295
@ stdcall GetDoubleClickTime() NtUserGetDoubleClickTime
296+
@ stdcall -version=0x601+ GetDpiForMonitorInternal(long long ptr ptr)
285297
@ stdcall -version=0xA00+ GetDpiForSystem()
286298
@ stdcall -version=0xA00+ GetDpiForWindow(ptr)
287299
@ stdcall GetFocus()
288300
@ stdcall GetForegroundWindow() NtUserGetForegroundWindow
289301
@ stdcall GetGUIThreadInfo(long ptr) NtUserGetGUIThreadInfo
302+
@ stdcall -version=0x601+ GetGestureConfig(long long long ptr ptr long)
303+
@ stdcall -version=0x601+ GetGestureExtraArgs(long long ptr)
304+
@ stdcall -version=0x601+ GetGestureInfo(long ptr)
290305
@ stdcall GetGuiResources(long long) NtUserGetGuiResources
291306
@ stdcall GetIconInfo(long ptr)
292307
@ stdcall GetInputDesktop()
@@ -332,8 +347,14 @@
332347
@ stdcall GetNextDlgTabItem(long long long)
333348
@ stdcall GetOpenClipboardWindow() NtUserGetOpenClipboardWindow
334349
@ stdcall GetParent(long)
350+
@ stdcall -version=0x602+ GetPointerInfo(long ptr)
351+
@ stdcall -version=0x602+ GetPointerTouchInfo(long ptr)
352+
@ stdcall -version=0x602+ GetPointerTouchInfoHistory(long ptr ptr)
353+
@ stdcall -version=0x601+ GetPointerDevices(ptr ptr)
354+
@ stdcall -version=0x602+ GetPointerType(long ptr)
335355
@ stdcall GetPriorityClipboardFormat(ptr long) NtUserGetPriorityClipboardFormat
336356
@ stdcall GetProcessDefaultLayout(ptr)
357+
@ stdcall -version=0xA00+ GetProcessDpiAwarenessInternal(long ptr)
337358
@ stdcall GetProcessWindowStation() NtUserGetProcessWindowStation
338359
@ stdcall GetProgmanWindow ()
339360
@ stdcall GetPropA(long str)
@@ -363,6 +384,7 @@
363384
@ stdcall GetThreadDesktop(long)
364385
@ stdcall GetTitleBarInfo(long ptr) NtUserGetTitleBarInfo
365386
@ stdcall GetTopWindow(long)
387+
@ stdcall -version=0x601+ GetTouchInputInfo(long long ptr long)
366388
@ stdcall GetUpdateRect(long ptr long)
367389
@ stdcall GetUpdateRgn(long long long)
368390
@ stdcall GetUserObjectInformationA(long long ptr long ptr)
@@ -372,6 +394,7 @@
372394
@ stdcall GetWindow(long long)
373395
@ stdcall GetWindowContextHelpId(long)
374396
@ stdcall GetWindowDC(long) NtUserGetWindowDC
397+
@ stdcall -version=0x601+ GetWindowDisplayAffinity(long ptr)
375398
@ stdcall GetWindowInfo(long ptr)
376399
@ stdcall GetWindowLongA(long long)
377400
@ stdcall -arch=x86_64,arm64 GetWindowLongPtrA(ptr long)
@@ -410,6 +433,7 @@
410433
@ stdcall InsertMenuItemA(long long long ptr)
411434
@ stdcall InsertMenuItemW(long long long ptr)
412435
@ stdcall InsertMenuW(long long long long ptr)
436+
@ stdcall -stub -version=0x600+ InternalGetWindowIcon(ptr long)
413437
@ stdcall InternalGetWindowText(long long long)
414438
@ stdcall IntersectRect(ptr ptr ptr)
415439
@ stdcall InvalidateRect(long ptr long) NtUserInvalidateRect
@@ -434,13 +458,17 @@
434458
@ stdcall IsIconic(long)
435459
@ stdcall IsMenu(long)
436460
@ stdcall -stub IsProcess16Bit()
461+
@ stdcall -version=0x600+ IsProcessDPIAware()
437462
@ stdcall IsRectEmpty(ptr)
438463
@ stdcall IsSETEnabled()
439464
@ stdcall IsServerSideWindow(long)
465+
@ stdcall -version=0x601+ IsTouchWindow(long ptr)
466+
@ stdcall -stub -version=0xA00+ IsValidDpiAwarenessContext(long)
440467
@ stdcall IsWinEventHookInstalled(long)
441468
@ stdcall IsWindow(long)
442469
@ stdcall IsWindowEnabled(long)
443470
@ stdcall IsWindowInDestroy(long)
471+
@ stdcall -version=0x600+ IsWindowRedirectedForPrint(long)
444472
@ stdcall IsWindowUnicode(long)
445473
@ stdcall IsWindowVisible(long)
446474
@ stdcall -stub IsWow64Message()
@@ -474,6 +502,8 @@
474502
@ stdcall LockWindowStation(long) NtUserLockWindowStation
475503
@ stdcall LockWindowUpdate(long) NtUserLockWindowUpdate
476504
@ stdcall LockWorkStation() NtUserLockWorkStation
505+
@ stdcall -version=0x600+ LogicalToPhysicalPoint(long ptr)
506+
@ stdcall -stub -version=0x602+ LogicalToPhysicalPointForPerMonitorDPI(long ptr)
477507
@ stdcall LookupIconIdFromDirectory(ptr long)
478508
@ stdcall LookupIconIdFromDirectoryEx(ptr long long long long)
479509
@ stdcall MBToWCSEx(long str long wstr long long)
@@ -519,6 +549,7 @@
519549
@ stdcall OpenWindowStationA(str long long)
520550
@ stdcall OpenWindowStationW(wstr long long)
521551
@ stdcall PackDDElParam(long long long)
552+
@ stdcall -version=0x602+ PackTouchHitTestingProximityEvaluation(ptr ptr)
522553
@ stdcall PaintDesktop(long) NtUserPaintDesktop
523554
@ stdcall PaintMenuBar(long long long long long long) NtUserPaintMenuBar
524555
@ stdcall PeekMessageA(ptr long long long long)
@@ -536,6 +567,7 @@
536567
# PrivateSetDbgTag
537568
# PrivateSetRipFlags
538569
@ stdcall PtInRect(ptr double)
570+
@ stdcall -version=0x600+ QueryDisplayConfig(long ptr ptr ptr ptr ptr)
539571
@ stdcall QuerySendMessage(ptr) NtUserQuerySendMessage
540572
@ stdcall RealChildWindowFromPoint(long double) ; Direct call NtUserRealChildWindowFromPoint
541573
@ stdcall RealGetWindowClass(long ptr long) RealGetWindowClassA
@@ -556,16 +588,21 @@
556588
@ stdcall RegisterHotKey(long long long long) NtUserRegisterHotKey
557589
@ stdcall RegisterLogonProcess(long long)
558590
@ stdcall RegisterMessagePumpHook(ptr)
591+
@ stdcall -version=0x602+ RegisterPointerDeviceNotifications(long long)
592+
@ stdcall -version=0x600+ RegisterPowerSettingNotification(long ptr long)
559593
@ stdcall RegisterRawInputDevices(ptr long long)
560594
@ stdcall RegisterServicesProcess(long)
561595
@ stdcall RegisterShellHookWindow(long)
562596
@ stdcall RegisterSystemThread(long long)
563597
@ stdcall RegisterTasklist(long) NtUserRegisterTasklist
598+
@ stdcall -version=0x602+ RegisterTouchHitTestingWindow(long long)
599+
@ stdcall -version=0x601+ RegisterTouchWindow(long long)
564600
@ stdcall RegisterUserApiHook(ptr)
565601
@ stdcall RegisterWindowMessageA(str)
566602
@ stdcall RegisterWindowMessageW(wstr)
567603
@ stdcall ReleaseCapture()
568604
@ stdcall ReleaseDC(long long)
605+
@ stdcall -version=0x600+ RemoveClipboardFormatListener(long)
569606
@ stdcall RemoveMenu(long long long) NtUserRemoveMenu
570607
@ stdcall RemovePropA(long str)
571608
@ stdcall RemovePropW(long wstr)
@@ -608,12 +645,15 @@
608645
# SetDbgTag
609646
@ stdcall SetDebugErrorLevel(long)
610647
@ stdcall SetDeskWallpaper(ptr)
648+
@ stdcall -version=0x602+ SetDisplayAutoRotationPreferences(long)
649+
@ stdcall -version=0x600+ SetDisplayConfig(long ptr long ptr long)
611650
@ stdcall SetDlgItemInt(long long long long)
612651
@ stdcall SetDlgItemTextA(long long str)
613652
@ stdcall SetDlgItemTextW(long long wstr)
614653
@ stdcall SetDoubleClickTime(long)
615654
@ stdcall SetFocus(long) NtUserSetFocus
616655
@ stdcall SetForegroundWindow(long)
656+
@ stdcall -version=0x601+ SetGestureConfig(ptr long long ptr long)
617657
@ stdcall SetInternalWindowPos(long long ptr ptr) NtUserSetInternalWindowPos
618658
@ stdcall SetKeyboardState(ptr) NtUserSetKeyboardState
619659
@ stdcall SetLastErrorEx(long long)
@@ -629,7 +669,10 @@
629669
@ stdcall SetMessageExtraInfo(long)
630670
@ stdcall SetMessageQueue(long)
631671
@ stdcall SetParent(long long) NtUserSetParent
672+
@ stdcall -version=0x600+ SetProcessDPIAware()
632673
@ stdcall SetProcessDefaultLayout(long)
674+
@ stdcall -version=0xA00+ SetProcessDpiAwarenessContext(long)
675+
@ stdcall -version=0xA00+ SetProcessDpiAwarenessInternal(long)
633676
@ stdcall SetProcessWindowStation(long) NtUserSetProcessWindowStation
634677
@ stdcall SetProgmanWindow (long)
635678
@ stdcall SetPropA(long str long)
@@ -654,7 +697,9 @@
654697
@ stdcall SetUserObjectInformationW(long long ptr long) NtUserSetObjectInformation
655698
@ stdcall SetUserObjectSecurity(long ptr ptr)
656699
@ stdcall SetWinEventHook(long long long ptr long long long)
700+
@ stdcall -version=0x601+ SetWindowCompositionAttribute(ptr ptr)
657701
@ stdcall SetWindowContextHelpId(long long)
702+
@ stdcall -version=0x601+ SetWindowDisplayAffinity(long long)
658703
@ stdcall SetWindowLongA(long long long)
659704
@ stdcall -arch=x86_64,arm64 SetWindowLongPtrA(ptr long ptr)
660705
@ stdcall -arch=x86_64,arm64 SetWindowLongPtrW(ptr long ptr)
@@ -677,6 +722,8 @@
677722
@ stdcall ShowStartGlass(long)
678723
@ stdcall ShowWindow(long long) NtUserShowWindow
679724
@ stdcall ShowWindowAsync(long long) NtUserShowWindowAsync
725+
@ stdcall -version=0x600+ ShutdownBlockReasonCreate(long wstr)
726+
@ stdcall -version=0x600+ ShutdownBlockReasonDestroy(long)
680727
@ stdcall SoftModalMessageBox(ptr)
681728
@ stdcall SubtractRect(ptr ptr ptr)
682729
@ stdcall SwapMouseButton(long)
@@ -713,6 +760,9 @@
713760
@ stdcall UnregisterDeviceNotification(long)
714761
@ stdcall UnregisterHotKey(long long) NtUserUnregisterHotKey
715762
@ stdcall UnregisterMessagePumpHook()
763+
@ stdcall -version=0x601+ UnregisterTouchWindow(ptr)
764+
@ stdcall -version=0x600+ UnregisterPowerSettingNotification(ptr)
765+
@ stdcall -version=0x602+ UnregisterSuspendResumeNotification(ptr)
716766
@ stdcall UnregisterUserApiHook() NtUserUnregisterUserApiHook
717767
@ stdcall UpdateLayeredWindow(long long ptr ptr long ptr long ptr long)
718768
@ stdcall UpdateLayeredWindowIndirect(long ptr)

win32ss/user/user32_vista/CMakeLists.txt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,29 @@ include_directories(
55
include
66
${REACTOS_SOURCE_DIR}/win32ss/include)
77

8+
list(APPEND VISTA_SOURCE
9+
wine/input.c
10+
wine/misc.c
11+
wine/sysparams.c
12+
wine/win.c)
13+
14+
815
list(APPEND SOURCE
916
dpi.c)
1017

18+
# These are just for Vista+ support
19+
add_library(user32_optional_vista
20+
${VISTA_SOURCE})
21+
target_link_libraries(user32_optional_vista wine win32ksys)
22+
add_dependencies(user32_optional_vista wine psdk)
23+
if(MSVC)
24+
# Disable warning C4312: 'type cast': conversion from 'unsigned int' to 'HANDLE' of greater size
25+
target_compile_options(user32_optional_vista PRIVATE /wd4312)
26+
endif()
27+
28+
# These are required for WINE imports
1129
add_library(user32_vista_static
12-
${SOURCE})
30+
${SOURCE})
1331
target_link_libraries(user32_vista_static win32ksys)
1432
add_dependencies(user32_vista_static psdk)
1533

win32ss/user/user32_vista/dpi.c

Lines changed: 92 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
#include <wingdi.h>
1313
#include <winuser.h>
1414

15+
HDC APIENTRY
16+
NtUserGetDC(HWND hWnd);
17+
1518
#define NDEBUG
1619
#include <debug.h>
1720

@@ -24,7 +27,7 @@ GetDpiForSystem(VOID)
2427
{
2528
HDC hDC;
2629
UINT Dpi;
27-
hDC = GetDC(NULL);
30+
hDC = NtUserGetDC(NULL);
2831
Dpi = GetDeviceCaps(hDC, LOGPIXELSY);
2932
ReleaseDC(NULL, hDC);
3033
return Dpi;
@@ -42,3 +45,91 @@ GetDpiForWindow(
4245
UNREFERENCED_PARAMETER(hWnd);
4346
return GetDpiForSystem();
4447
}
48+
49+
/*
50+
* @stub
51+
*/
52+
BOOL
53+
WINAPI
54+
IsProcessDPIAware(VOID)
55+
{
56+
UNIMPLEMENTED;
57+
return FALSE;
58+
}
59+
60+
/*
61+
* @stub
62+
*/
63+
BOOL
64+
WINAPI
65+
SetProcessDPIAware(VOID)
66+
{
67+
UNIMPLEMENTED;
68+
return FALSE;
69+
}
70+
71+
/*
72+
* @stub
73+
*/
74+
BOOL
75+
WINAPI
76+
SetProcessDpiAwarenessContext(
77+
_In_ DPI_AWARENESS_CONTEXT context)
78+
{
79+
UNIMPLEMENTED;
80+
return FALSE;
81+
}
82+
83+
/*
84+
* @stub
85+
*/
86+
BOOL
87+
WINAPI
88+
GetProcessDpiAwarenessInternal(
89+
_In_ HANDLE process,
90+
_Out_ DPI_AWARENESS *awareness)
91+
{
92+
UNIMPLEMENTED;
93+
return FALSE;
94+
}
95+
96+
/*
97+
* @stub
98+
*/
99+
BOOL
100+
WINAPI
101+
SetProcessDpiAwarenessInternal(
102+
_In_ DPI_AWARENESS awareness)
103+
{
104+
UNIMPLEMENTED;
105+
return FALSE;
106+
}
107+
108+
/*
109+
* @stub
110+
*/
111+
BOOL
112+
WINAPI
113+
GetDpiForMonitorInternal(
114+
_In_ HMONITOR monitor,
115+
_In_ UINT type,
116+
_Out_ UINT *x,
117+
_Out_ UINT *y)
118+
{
119+
UNIMPLEMENTED;
120+
return FALSE;
121+
}
122+
123+
/*
124+
* @stub
125+
*/
126+
BOOL
127+
WINAPI
128+
LogicalToPhysicalPoint(
129+
_In_ HWND hwnd,
130+
_Inout_ POINT *point )
131+
{
132+
UNIMPLEMENTED;
133+
return TRUE;
134+
}
135+

0 commit comments

Comments
 (0)