https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6dccccc2a3004be81bd6e6d2d257c4863c0f5f67

commit 6dccccc2a3004be81bd6e6d2d257c4863c0f5f67
Author:     Justin Miller <justin.mil...@reactos.org>
AuthorDate: Tue Jan 28 03:47:40 2025 -0800
Commit:     Justin Miller <justinmiller...@gmail.com>
CommitDate: Sun Mar 9 04:07:55 2025 -0700

    [USER32_VISTA][USER32] Sync some parts with WINE-10.0
---
 media/doc/WINESYNC.txt                     |   3 +
 win32ss/user/user32/CMakeLists.txt         |   2 +-
 win32ss/user/user32/user32.spec            |  50 +++++
 win32ss/user/user32_vista/CMakeLists.txt   |  20 +-
 win32ss/user/user32_vista/dpi.c            |  93 ++++++++-
 win32ss/user/user32_vista/wine/input.c     | 133 ++++++++++++-
 win32ss/user/user32_vista/wine/misc.c      | 147 ++++++++++++++-
 win32ss/user/user32_vista/wine/sysparams.c | 291 +++++++++++++++++++++++++++++
 win32ss/user/user32_vista/wine/win.c       |  14 +-
 9 files changed, 747 insertions(+), 6 deletions(-)

diff --git a/media/doc/WINESYNC.txt b/media/doc/WINESYNC.txt
index 4b82a0cb2c4..3ca038f04d0 100644
--- a/media/doc/WINESYNC.txt
+++ b/media/doc/WINESYNC.txt
@@ -361,6 +361,9 @@ user32 -
   win32ss/user/user32/windows/text.c       # Forked (lstr.c)
   win32ss/user/user32/windows/winpos.c     # Forked
 
+  win32ss/user/user32_vista/input.c        # Synced to Wine-10.0
+  win32ss/user/user32_vista/misc.c         # Synced to Wine-10.0
+  win32ss/user/user32_vista/win.c          # Synced to Wine-10.0
 schannel.c
   dll/win32/schannel/schannel_wine.c    # synced to wine-1.7.17 
(secur32/schannel.c)
   dll/win32/schannel/secur32_wine.c     # partial sync to wine-1.7.17 
(secur32/secur32.c)
diff --git a/win32ss/user/user32/CMakeLists.txt 
b/win32ss/user/user32/CMakeLists.txt
index ca2f2a143e2..2e7ac16ac0b 100644
--- a/win32ss/user/user32/CMakeLists.txt
+++ b/win32ss/user/user32/CMakeLists.txt
@@ -81,7 +81,7 @@ add_library(user32 MODULE
     ${CMAKE_CURRENT_BINARY_DIR}/user32.def)
 
 set_module_type(user32 win32dll UNICODE ENTRYPOINT DllMain 12)
-target_link_libraries(user32 user32_vista_static user32_wsprintf wine 
win32ksys ${PSEH_LIB})
+target_link_libraries(user32 user32_vista_static user32_optional_vista 
user32_wsprintf wine win32ksys ${PSEH_LIB})
 add_dependencies(user32 asm)
 
 if(MSVC AND (ARCH STREQUAL "i386"))
diff --git a/win32ss/user/user32/user32.spec b/win32ss/user/user32/user32.spec
index 7fe69be95a4..5b52db15f55 100644
--- a/win32ss/user/user32/user32.spec
+++ b/win32ss/user/user32/user32.spec
@@ -1,5 +1,6 @@
 ; Functions exported by Win 2K3 SP2
 @ stdcall ActivateKeyboardLayout(long long) NtUserActivateKeyboardLayout
+@ stdcall -version=0x600+ AddClipboardFormatListener(ptr)
 @ stdcall AdjustWindowRect(ptr long long)
 @ stdcall AdjustWindowRectEx(ptr long long long)
 @ stdcall AlignRects(ptr long long long)
@@ -37,6 +38,8 @@
 @ stdcall ChangeDisplaySettingsW(ptr long)
 @ stdcall ChangeMenuA(long long ptr long long)
 @ stdcall ChangeMenuW(long long ptr long long)
+@ stdcall -version=0x600+ ChangeWindowMessageFilter(ptr long)
+@ stdcall -version=0x601+ ChangeWindowMessageFilterEx(ptr long long ptr)
 @ stdcall CharLowerA(str)
 @ stdcall CharLowerBuffA(str long)
 @ stdcall CharLowerBuffW(wstr long)
@@ -67,6 +70,8 @@
 @ stdcall ClipCursor(ptr) NtUserClipCursor
 @ stdcall CloseClipboard() NtUserCloseClipboard
 @ stdcall CloseDesktop(long) NtUserCloseDesktop
+@ stdcall -version=0x601+ CloseGestureInfoHandle(ptr)
+@ stdcall -version=0x601+ CloseTouchInputHandle(ptr)
 @ stdcall CloseWindow(long)
 @ stdcall CloseWindowStation(long) NtUserCloseWindowStation
 @ stdcall CopyAcceleratorTableA(long ptr long)
@@ -95,6 +100,7 @@
 @ stdcall CreateMenu()
 @ stdcall CreatePopupMenu()
 @ stdcall CreateSystemThreads(long)
+@ stdcall -version=0xA00+ CreateSyntheticPointerDevice(long long long)
 @ stdcall CreateWindowExA(long str str long long long long long long long long 
ptr)
 @ stdcall CreateWindowExW(long wstr wstr long long long long long long long 
long ptr)
 @ stdcall CreateWindowStationA(str long long ptr)
@@ -164,6 +170,8 @@
 @ stdcall DisableProcessWindowsGhosting()
 @ stdcall DispatchMessageA(ptr)
 @ stdcall DispatchMessageW(ptr)
+@ stdcall -version=0x600+ DisplayConfigGetDeviceInfo(ptr)
+@ stdcall -version=0x600+ DisplayConfigSetDeviceInfo(ptr)
 @ stdcall DisplayExitWindowsWarnings(long)
 @ stdcall DlgDirListA(long str long long long)
 @ stdcall DlgDirListComboBoxA(long ptr long long long)
@@ -225,6 +233,7 @@
 @ stdcall EnumWindowStationsW(ptr long)
 @ stdcall EnumWindows(ptr long)
 @ stdcall EqualRect(ptr ptr)
+@ stdcall -version=0x602+ EvaluateProximityToRect(ptr ptr ptr)
 @ stdcall ExcludeUpdateRgn(long long) NtUserExcludeUpdateRgn
 @ stdcall ExitWindowsEx(long long)
 @ stdcall FillRect(long ptr long)
@@ -276,17 +285,23 @@
 # GetDbgTagFlags
 @ stdcall GetDesktopWindow()
 @ stdcall GetDialogBaseUnits()
+@ stdcall -version=0x602+ GetDisplayAutoRotationPreferences(ptr)
+@ stdcall -version=0x600+ GetDisplayConfigBufferSizes(long ptr ptr)
 @ stdcall GetDlgCtrlID(long)
 @ stdcall GetDlgItem(long long)
 @ stdcall GetDlgItemInt(long long ptr long)
 @ stdcall GetDlgItemTextA(long long ptr long)
 @ stdcall GetDlgItemTextW(long long ptr long)
 @ stdcall GetDoubleClickTime() NtUserGetDoubleClickTime
+@ stdcall -version=0x601+ GetDpiForMonitorInternal(long long ptr ptr)
 @ stdcall -version=0xA00+ GetDpiForSystem()
 @ stdcall -version=0xA00+ GetDpiForWindow(ptr)
 @ stdcall GetFocus()
 @ stdcall GetForegroundWindow() NtUserGetForegroundWindow
 @ stdcall GetGUIThreadInfo(long ptr) NtUserGetGUIThreadInfo
+@ stdcall -version=0x601+ GetGestureConfig(long long long ptr ptr long)
+@ stdcall -version=0x601+ GetGestureExtraArgs(long long ptr)
+@ stdcall -version=0x601+ GetGestureInfo(long ptr)
 @ stdcall GetGuiResources(long long) NtUserGetGuiResources
 @ stdcall GetIconInfo(long ptr)
 @ stdcall GetInputDesktop()
@@ -332,8 +347,14 @@
 @ stdcall GetNextDlgTabItem(long long long)
 @ stdcall GetOpenClipboardWindow() NtUserGetOpenClipboardWindow
 @ stdcall GetParent(long)
+@ stdcall -version=0x602+ GetPointerInfo(long ptr)
+@ stdcall -version=0x602+ GetPointerTouchInfo(long ptr)
+@ stdcall -version=0x602+ GetPointerTouchInfoHistory(long ptr ptr)
+@ stdcall -version=0x601+ GetPointerDevices(ptr ptr)
+@ stdcall -version=0x602+ GetPointerType(long ptr)
 @ stdcall GetPriorityClipboardFormat(ptr long) NtUserGetPriorityClipboardFormat
 @ stdcall GetProcessDefaultLayout(ptr)
+@ stdcall -version=0xA00+ GetProcessDpiAwarenessInternal(long ptr)
 @ stdcall GetProcessWindowStation() NtUserGetProcessWindowStation
 @ stdcall GetProgmanWindow ()
 @ stdcall GetPropA(long str)
@@ -363,6 +384,7 @@
 @ stdcall GetThreadDesktop(long)
 @ stdcall GetTitleBarInfo(long ptr) NtUserGetTitleBarInfo
 @ stdcall GetTopWindow(long)
+@ stdcall -version=0x601+ GetTouchInputInfo(long long ptr long)
 @ stdcall GetUpdateRect(long ptr long)
 @ stdcall GetUpdateRgn(long long long)
 @ stdcall GetUserObjectInformationA(long long ptr long ptr)
@@ -372,6 +394,7 @@
 @ stdcall GetWindow(long long)
 @ stdcall GetWindowContextHelpId(long)
 @ stdcall GetWindowDC(long) NtUserGetWindowDC
+@ stdcall -version=0x601+ GetWindowDisplayAffinity(long ptr)
 @ stdcall GetWindowInfo(long ptr)
 @ stdcall GetWindowLongA(long long)
 @ stdcall -arch=x86_64,arm64 GetWindowLongPtrA(ptr long)
@@ -410,6 +433,7 @@
 @ stdcall InsertMenuItemA(long long long ptr)
 @ stdcall InsertMenuItemW(long long long ptr)
 @ stdcall InsertMenuW(long long long long ptr)
+@ stdcall -stub -version=0x600+ InternalGetWindowIcon(ptr long)
 @ stdcall InternalGetWindowText(long long long)
 @ stdcall IntersectRect(ptr ptr ptr)
 @ stdcall InvalidateRect(long ptr long) NtUserInvalidateRect
@@ -434,13 +458,17 @@
 @ stdcall IsIconic(long)
 @ stdcall IsMenu(long)
 @ stdcall -stub IsProcess16Bit()
+@ stdcall -version=0x600+ IsProcessDPIAware()
 @ stdcall IsRectEmpty(ptr)
 @ stdcall IsSETEnabled()
 @ stdcall IsServerSideWindow(long)
+@ stdcall -version=0x601+ IsTouchWindow(long ptr)
+@ stdcall -stub -version=0xA00+ IsValidDpiAwarenessContext(long)
 @ stdcall IsWinEventHookInstalled(long)
 @ stdcall IsWindow(long)
 @ stdcall IsWindowEnabled(long)
 @ stdcall IsWindowInDestroy(long)
+@ stdcall -version=0x600+ IsWindowRedirectedForPrint(long)
 @ stdcall IsWindowUnicode(long)
 @ stdcall IsWindowVisible(long)
 @ stdcall -stub IsWow64Message()
@@ -474,6 +502,8 @@
 @ stdcall LockWindowStation(long) NtUserLockWindowStation
 @ stdcall LockWindowUpdate(long) NtUserLockWindowUpdate
 @ stdcall LockWorkStation() NtUserLockWorkStation
+@ stdcall -version=0x600+ LogicalToPhysicalPoint(long ptr)
+@ stdcall -stub -version=0x602+ LogicalToPhysicalPointForPerMonitorDPI(long 
ptr)
 @ stdcall LookupIconIdFromDirectory(ptr long)
 @ stdcall LookupIconIdFromDirectoryEx(ptr long long long long)
 @ stdcall MBToWCSEx(long str long wstr long long)
@@ -519,6 +549,7 @@
 @ stdcall OpenWindowStationA(str long long)
 @ stdcall OpenWindowStationW(wstr long long)
 @ stdcall PackDDElParam(long long long)
+@ stdcall -version=0x602+ PackTouchHitTestingProximityEvaluation(ptr ptr)
 @ stdcall PaintDesktop(long) NtUserPaintDesktop
 @ stdcall PaintMenuBar(long long long long long long) NtUserPaintMenuBar
 @ stdcall PeekMessageA(ptr long long long long)
@@ -536,6 +567,7 @@
 # PrivateSetDbgTag
 # PrivateSetRipFlags
 @ stdcall PtInRect(ptr double)
+@ stdcall -version=0x600+ QueryDisplayConfig(long ptr ptr ptr ptr ptr)
 @ stdcall QuerySendMessage(ptr) NtUserQuerySendMessage
 @ stdcall RealChildWindowFromPoint(long double) ; Direct call 
NtUserRealChildWindowFromPoint
 @ stdcall RealGetWindowClass(long ptr long) RealGetWindowClassA
@@ -556,16 +588,21 @@
 @ stdcall RegisterHotKey(long long long long) NtUserRegisterHotKey
 @ stdcall RegisterLogonProcess(long long)
 @ stdcall RegisterMessagePumpHook(ptr)
+@ stdcall -version=0x602+ RegisterPointerDeviceNotifications(long long)
+@ stdcall -version=0x600+ RegisterPowerSettingNotification(long ptr long)
 @ stdcall RegisterRawInputDevices(ptr long long)
 @ stdcall RegisterServicesProcess(long)
 @ stdcall RegisterShellHookWindow(long)
 @ stdcall RegisterSystemThread(long long)
 @ stdcall RegisterTasklist(long) NtUserRegisterTasklist
+@ stdcall -version=0x602+ RegisterTouchHitTestingWindow(long long)
+@ stdcall -version=0x601+ RegisterTouchWindow(long long)
 @ stdcall RegisterUserApiHook(ptr)
 @ stdcall RegisterWindowMessageA(str)
 @ stdcall RegisterWindowMessageW(wstr)
 @ stdcall ReleaseCapture()
 @ stdcall ReleaseDC(long long)
+@ stdcall -version=0x600+ RemoveClipboardFormatListener(long)
 @ stdcall RemoveMenu(long long long) NtUserRemoveMenu
 @ stdcall RemovePropA(long str)
 @ stdcall RemovePropW(long wstr)
@@ -608,12 +645,15 @@
 # SetDbgTag
 @ stdcall SetDebugErrorLevel(long)
 @ stdcall SetDeskWallpaper(ptr)
+@ stdcall -version=0x602+ SetDisplayAutoRotationPreferences(long)
+@ stdcall -version=0x600+ SetDisplayConfig(long ptr long ptr long)
 @ stdcall SetDlgItemInt(long long long long)
 @ stdcall SetDlgItemTextA(long long str)
 @ stdcall SetDlgItemTextW(long long wstr)
 @ stdcall SetDoubleClickTime(long)
 @ stdcall SetFocus(long) NtUserSetFocus
 @ stdcall SetForegroundWindow(long)
+@ stdcall -version=0x601+ SetGestureConfig(ptr long long ptr long)
 @ stdcall SetInternalWindowPos(long long ptr ptr) NtUserSetInternalWindowPos
 @ stdcall SetKeyboardState(ptr) NtUserSetKeyboardState
 @ stdcall SetLastErrorEx(long long)
@@ -629,7 +669,10 @@
 @ stdcall SetMessageExtraInfo(long)
 @ stdcall SetMessageQueue(long)
 @ stdcall SetParent(long long) NtUserSetParent
+@ stdcall -version=0x600+ SetProcessDPIAware()
 @ stdcall SetProcessDefaultLayout(long)
+@ stdcall -version=0xA00+ SetProcessDpiAwarenessContext(long)
+@ stdcall -version=0xA00+ SetProcessDpiAwarenessInternal(long)
 @ stdcall SetProcessWindowStation(long) NtUserSetProcessWindowStation
 @ stdcall SetProgmanWindow (long)
 @ stdcall SetPropA(long str long)
@@ -654,7 +697,9 @@
 @ stdcall SetUserObjectInformationW(long long ptr long) 
NtUserSetObjectInformation
 @ stdcall SetUserObjectSecurity(long ptr ptr)
 @ stdcall SetWinEventHook(long long long ptr long long long)
+@ stdcall -version=0x601+ SetWindowCompositionAttribute(ptr ptr)
 @ stdcall SetWindowContextHelpId(long long)
+@ stdcall -version=0x601+ SetWindowDisplayAffinity(long long)
 @ stdcall SetWindowLongA(long long long)
 @ stdcall -arch=x86_64,arm64 SetWindowLongPtrA(ptr long ptr)
 @ stdcall -arch=x86_64,arm64 SetWindowLongPtrW(ptr long ptr)
@@ -677,6 +722,8 @@
 @ stdcall ShowStartGlass(long)
 @ stdcall ShowWindow(long long) NtUserShowWindow
 @ stdcall ShowWindowAsync(long long) NtUserShowWindowAsync
+@ stdcall -version=0x600+ ShutdownBlockReasonCreate(long wstr)
+@ stdcall -version=0x600+ ShutdownBlockReasonDestroy(long)
 @ stdcall SoftModalMessageBox(ptr)
 @ stdcall SubtractRect(ptr ptr ptr)
 @ stdcall SwapMouseButton(long)
@@ -713,6 +760,9 @@
 @ stdcall UnregisterDeviceNotification(long)
 @ stdcall UnregisterHotKey(long long) NtUserUnregisterHotKey
 @ stdcall UnregisterMessagePumpHook()
+@ stdcall -version=0x601+ UnregisterTouchWindow(ptr)
+@ stdcall -version=0x600+ UnregisterPowerSettingNotification(ptr)
+@ stdcall -version=0x602+ UnregisterSuspendResumeNotification(ptr)
 @ stdcall UnregisterUserApiHook() NtUserUnregisterUserApiHook
 @ stdcall UpdateLayeredWindow(long long ptr ptr long ptr long ptr long)
 @ stdcall UpdateLayeredWindowIndirect(long ptr)
diff --git a/win32ss/user/user32_vista/CMakeLists.txt 
b/win32ss/user/user32_vista/CMakeLists.txt
index 4b05f471946..3ca127b29ef 100644
--- a/win32ss/user/user32_vista/CMakeLists.txt
+++ b/win32ss/user/user32_vista/CMakeLists.txt
@@ -5,11 +5,29 @@ include_directories(
     include
     ${REACTOS_SOURCE_DIR}/win32ss/include)
 
+list(APPEND VISTA_SOURCE 
+     wine/input.c
+     wine/misc.c
+     wine/sysparams.c
+     wine/win.c)
+     
+
 list(APPEND SOURCE
     dpi.c)
 
+# These are just for Vista+ support
+add_library(user32_optional_vista
+            ${VISTA_SOURCE})
+target_link_libraries(user32_optional_vista wine win32ksys)
+add_dependencies(user32_optional_vista wine psdk)
+if(MSVC)
+    # Disable warning C4312: 'type cast': conversion from 'unsigned int' to 
'HANDLE' of greater size
+    target_compile_options(user32_optional_vista PRIVATE /wd4312)
+endif()
+
+# These are required for WINE imports
 add_library(user32_vista_static
-    ${SOURCE})
+            ${SOURCE})
 target_link_libraries(user32_vista_static win32ksys)
 add_dependencies(user32_vista_static psdk)
 
diff --git a/win32ss/user/user32_vista/dpi.c b/win32ss/user/user32_vista/dpi.c
index 08d73e4e4e5..5b5bd737ecf 100644
--- a/win32ss/user/user32_vista/dpi.c
+++ b/win32ss/user/user32_vista/dpi.c
@@ -12,6 +12,9 @@
 #include <wingdi.h>
 #include <winuser.h>
 
+HDC APIENTRY
+NtUserGetDC(HWND hWnd);
+
 #define NDEBUG
 #include <debug.h>
 
@@ -24,7 +27,7 @@ GetDpiForSystem(VOID)
 {
     HDC hDC;
     UINT Dpi;
-    hDC = GetDC(NULL);
+    hDC = NtUserGetDC(NULL);
     Dpi = GetDeviceCaps(hDC, LOGPIXELSY);
     ReleaseDC(NULL, hDC);
     return Dpi;
@@ -42,3 +45,91 @@ GetDpiForWindow(
     UNREFERENCED_PARAMETER(hWnd);
     return GetDpiForSystem();
 }
+
+/*
+ * @stub
+ */
+BOOL
+WINAPI
+IsProcessDPIAware(VOID)
+{
+    UNIMPLEMENTED;
+    return FALSE;
+}
+
+/*
+ * @stub
+ */
+BOOL
+WINAPI
+SetProcessDPIAware(VOID)
+{
+    UNIMPLEMENTED;
+    return FALSE;
+}
+
+/*
+ * @stub
+ */
+BOOL
+WINAPI
+SetProcessDpiAwarenessContext(
+    _In_ DPI_AWARENESS_CONTEXT context)
+{
+    UNIMPLEMENTED;
+    return FALSE;
+}
+
+/*
+ * @stub
+ */
+BOOL
+WINAPI
+GetProcessDpiAwarenessInternal(
+    _In_  HANDLE process,
+    _Out_ DPI_AWARENESS *awareness)
+{
+    UNIMPLEMENTED;
+    return FALSE;
+}
+
+/*
+ * @stub
+ */
+BOOL
+WINAPI
+SetProcessDpiAwarenessInternal(
+    _In_ DPI_AWARENESS awareness)
+{
+    UNIMPLEMENTED;
+    return FALSE;
+}
+
+/*
+ * @stub
+ */
+BOOL
+WINAPI
+GetDpiForMonitorInternal(
+    _In_  HMONITOR monitor,
+    _In_  UINT type,
+    _Out_ UINT *x,
+    _Out_ UINT *y)
+{
+    UNIMPLEMENTED;
+    return FALSE;
+}
+
+/*
+ * @stub
+ */
+BOOL
+WINAPI
+LogicalToPhysicalPoint(
+    _In_ HWND hwnd, 
+    _Inout_ POINT *point )
+{
+    UNIMPLEMENTED;
+    return TRUE;
+}
+
diff --git a/win32ss/user/user32_vista/wine/input.c 
b/win32ss/user/user32_vista/wine/input.c
index 38c44d7d831..2d95c41ad1a 100644
--- a/win32ss/user/user32_vista/wine/input.c
+++ b/win32ss/user/user32_vista/wine/input.c
@@ -24,12 +24,141 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#ifdef __REACTOS__
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+#include <windef.h>
+#include <wingdi.h>
+#include <winuser.h>
+#include <winbase.h>
+DECLARE_HANDLE(HSYNTHETICPOINTERDEVICE);
+typedef enum
+{
+    POINTER_FEEDBACK_DEFAULT = 1,
+    POINTER_FEEDBACK_INDIRECT = 2,
+    POINTER_FEEDBACK_NONE = 3,
+} POINTER_FEEDBACK_MODE;
+
+typedef enum ORIENTATION_PREFERENCE {
+    ORIENTATION_PREFERENCE_NONE              = 0x0,
+    ORIENTATION_PREFERENCE_LANDSCAPE         = 0x1,
+    ORIENTATION_PREFERENCE_PORTRAIT          = 0x2,
+    ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 0x4,
+    ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED  = 0x8
+} ORIENTATION_PREFERENCE;
+
+/* Touch input definitions */
+DECLARE_HANDLE(HTOUCHINPUT);
+
+
+typedef struct tagTOUCHINPUT {
+    LONG      x;
+    LONG      y;
+    HANDLE    hSource;
+    DWORD     dwID;
+    DWORD     dwFlags;
+    DWORD     dwMask;
+    DWORD     dwTime;
+    ULONG_PTR dwExtraInfo;
+    DWORD     cxContact;
+    DWORD     cyContact;
+} TOUCHINPUT, *PTOUCHINPUT;
+typedef TOUCHINPUT const * PCTOUCHINPUT;
+
+DECLARE_HANDLE(HGESTUREINFO);
+
+#define GF_BEGIN    0x00000001
+#define GF_INERTIA  0x00000002
+#define GF_END      0x00000004
+
+typedef struct tagGESTURECONFIG {
+    DWORD dwID;
+    DWORD dwWant;
+    DWORD dwBlock;
+} GESTURECONFIG, *PGESTURECONFIG;
+
+typedef struct tagGESTUREINFO {
+    UINT      cbSize;
+    DWORD     dwFlags;
+    DWORD     dwID;
+    HWND      hwndTarget;
+    POINTS    ptsLocation;
+    DWORD     dwInstanceID;
+    DWORD     dwSequenceID;
+    ULONGLONG ullArguments;
+    UINT      cbExtraArgs;
+} GESTUREINFO, *PGESTUREINFO;
+typedef GESTUREINFO const * PCGESTUREINFO;
+
+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 PVOID HPOWERNOTIFY, *PHPOWERNOTIFY;
+typedef UINT32 POINTER_FLAGS;
+typedef DWORD POINTER_INPUT_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;
+
+typedef UINT32 TOUCH_FLAGS;
+#define TOUCH_FLAG_NONE  0x00000000
+
+typedef UINT32 TOUCH_MASK;
+#define TOUCH_MASK_NONE         0x00000000
+#define TOUCH_MASK_CONTACTAREA  0x00000001
+#define TOUCH_MASK_ORIENTATION  0x00000002
+#define TOUCH_MASK_PRESSURE     0x00000004
+
+typedef struct tagPOINTER_TOUCH_INFO
+{
+    POINTER_INFO pointerInfo;
+    TOUCH_FLAGS touchFlags;
+    TOUCH_MASK touchMask;
+    RECT rcContact;
+    RECT rcContactRaw;
+    UINT32 orientation;
+    UINT32 pressure;
+} POINTER_TOUCH_INFO;
+
+#else
 #include "user_private.h"
 #include "dbt.h"
+#endif
 #include "wine/debug.h"
+#ifndef __REACTOS__
 #include "wine/plugplay.h"
+#endif
 
 WINE_DEFAULT_DEBUG_CHANNEL(win);
+#ifndef __REACTOS__
 WINE_DECLARE_DEBUG_CHANNEL(keyboard);
 
 /***********************************************************************
@@ -681,6 +810,7 @@ LRESULT WINAPI DefRawInputProc( RAWINPUT **data, INT 
data_count, UINT header_siz
 
     return header_size == sizeof(RAWINPUTHEADER) ? 0 : -1;
 }
+#endif
 
 /*****************************************************************************
  * CloseTouchInputHandle (USER32.@)
@@ -797,7 +927,7 @@ BOOL WINAPI GetPointerTouchInfoHistory( UINT32 id, UINT32 
*count, POINTER_TOUCH_
     return FALSE;
 }
 
-
+#ifndef __REACTOS__
 /*******************************************************************
  *           SetForegroundWindow  (USER32.@)
  */
@@ -880,6 +1010,7 @@ HWND WINAPI GetTaskmanWindow(void)
 {
     return NtUserGetTaskmanWindow();
 }
+#endif
 
 HSYNTHETICPOINTERDEVICE WINAPI CreateSyntheticPointerDevice(POINTER_INPUT_TYPE 
type, ULONG max_count, POINTER_FEEDBACK_MODE mode)
 {
diff --git a/win32ss/user/user32_vista/wine/misc.c 
b/win32ss/user/user32_vista/wine/misc.c
index 6333fcb48b4..0500682133f 100644
--- a/win32ss/user/user32_vista/wine/misc.c
+++ b/win32ss/user/user32_vista/wine/misc.c
@@ -23,6 +23,98 @@
 
 #include <stdarg.h>
 
+#ifdef __REACTOS__
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+#include <windef.h>
+#include <wingdi.h>
+#include <winuser.h>
+#include <winbase.h>
+
+#define POINTER_DEVICE_PRODUCT_STRING_MAX 520
+
+enum tagPOINTER_INPUT_TYPE {
+  PT_POINTER = 1,
+  PT_TOUCH,
+  PT_PEN,
+  PT_MOUSE,
+  PT_TOUCHPAD
+};
+
+typedef PVOID HPOWERNOTIFY, *PHPOWERNOTIFY;
+typedef UINT32 POINTER_FLAGS;
+typedef DWORD POINTER_INPUT_TYPE;
+
+typedef struct tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION
+{
+    UINT16 score;
+    POINT adjustedPoint;
+} TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, 
*PTOUCH_HIT_TESTING_PROXIMITY_EVALUATION;
+
+typedef struct tagTOUCH_HIT_TESTING_INPUT
+{
+    UINT32 pointerId;
+    POINT point;
+    RECT boundingBox;
+    RECT nonOccludedBoundingBox;
+    UINT32 orientation;
+} TOUCH_HIT_TESTING_INPUT, *PTOUCH_HIT_TESTING_INPUT;
+
+typedef enum tagPOINTER_DEVICE_TYPE {
+    POINTER_DEVICE_TYPE_INTEGRATED_PEN = 0x00000001,
+    POINTER_DEVICE_TYPE_EXTERNAL_PEN   = 0x00000002,
+    POINTER_DEVICE_TYPE_TOUCH          = 0x00000003,
+    POINTER_DEVICE_TYPE_TOUCH_PAD      = 0x00000004,
+    POINTER_DEVICE_TYPE_MAX            = 0xFFFFFFFF
+} POINTER_DEVICE_TYPE;
+
+typedef struct tagPOINTER_DEVICE_INFO {
+    DWORD displayOrientation;
+    HANDLE device;
+    POINTER_DEVICE_TYPE pointerDeviceType;
+    HMONITOR monitor;
+    ULONG startingCursorId;
+    USHORT maxActiveContacts;
+    WCHAR productString[POINTER_DEVICE_PRODUCT_STRING_MAX];
+} POINTER_DEVICE_INFO;
+
+
+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;
+
+
+#else
 #include "windef.h"
 #include "wine/windef16.h"
 #include "winbase.h"
@@ -30,11 +122,13 @@
 #include "controls.h"
 #include "imm.h"
 #include "user_private.h"
-
+#endif
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(win);
 
+#ifndef __REACTOS__
+
 BOOL WINAPI ImmSetActiveContext(HWND, HIMC, BOOL);
 
 #define IMM_INIT_MAGIC 0x19650412
@@ -403,6 +497,7 @@ BOOL WINAPI UserHandleGrantAccess(HANDLE handle, HANDLE 
job, BOOL grant)
     FIXME("(%p,%p,%d): stub\n", handle, job, grant);
     return TRUE;
 }
+#endif
 
 /**********************************************************************
  * RegisterPowerSettingNotification [USER32.@]
@@ -532,6 +627,7 @@ BOOL WINAPI GetPointerInfo(UINT32 id, POINTER_INFO *info)
     return FALSE;
 }
 
+#ifndef __REACTOS__
 LRESULT WINAPI ImeWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
 {
     if (!imm_ime_wnd_proc) return DefWindowProcA(hwnd, msg, wParam, lParam);
@@ -543,3 +639,52 @@ LRESULT WINAPI ImeWndProcW( HWND hwnd, UINT msg, WPARAM 
wParam, LPARAM lParam )
     if (!imm_ime_wnd_proc) return DefWindowProcW(hwnd, msg, wParam, lParam);
     return imm_ime_wnd_proc( hwnd, msg, wParam, lParam, FALSE );
 }
+#endif
+
+#ifdef __REACTOS__
+//wine/message.c stubs
+typedef struct tagCHANGEFILTERSTRUCT {
+    DWORD cbSize;
+    DWORD ExtStatus;
+} CHANGEFILTERSTRUCT, *PCHANGEFILTERSTRUCT;
+
+/******************************************************************
+ *      ChangeWindowMessageFilter (USER32.@)
+ */
+BOOL WINAPI ChangeWindowMessageFilter( UINT message, DWORD flag )
+{
+    FIXME( "%x %08lx\n", message, flag );
+    return TRUE;
+}
+
+/******************************************************************
+ *      ChangeWindowMessageFilterEx (USER32.@)
+ */
+BOOL WINAPI ChangeWindowMessageFilterEx( HWND hwnd, UINT message, DWORD 
action, CHANGEFILTERSTRUCT *changefilter )
+{
+    FIXME( "%p %x %ld %p\n", hwnd, message, action, changefilter );
+    return TRUE;
+}
+
+//wine/user_main.c
+/***********************************************************************
+ *             ShutdownBlockReasonDestroy (USER32.@)
+ */
+
+BOOL WINAPI ShutdownBlockReasonDestroy(HWND hwnd)
+{
+    FIXME("(%p): stub\n", hwnd);
+    SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
+    return FALSE;
+}
+
+/***********************************************************************
+ *             ShutdownBlockReasonCreate (USER32.@)
+ */
+BOOL WINAPI ShutdownBlockReasonCreate(HWND hwnd, LPCWSTR reason)
+{
+    FIXME("(%p, %s): stub\n", hwnd, debugstr_w(reason));
+    SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
+    return FALSE;
+}
+#endif
diff --git a/win32ss/user/user32_vista/wine/sysparams.c 
b/win32ss/user/user32_vista/wine/sysparams.c
new file mode 100644
index 00000000000..20c34f6d5e1
--- /dev/null
+++ b/win32ss/user/user32_vista/wine/sysparams.c
@@ -0,0 +1,291 @@
+
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+#include <windef.h>
+#include <wingdi.h>
+#include <winuser.h>
+#include <winbase.h>
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(win);
+
+typedef enum DISPLAYCONFIG_TOPOLOGY_ID
+{
+    DISPLAYCONFIG_TOPOLOGY_INTERNAL       = 0x00000001,
+    DISPLAYCONFIG_TOPOLOGY_CLONE          = 0x00000002,
+    DISPLAYCONFIG_TOPOLOGY_EXTEND         = 0x00000004,
+    DISPLAYCONFIG_TOPOLOGY_EXTERNAL       = 0x00000008,
+    DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32   = 0xFFFFFFFF
+} DISPLAYCONFIG_TOPOLOGY_ID;
+
+typedef enum
+{
+    DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME                 = 1,
+    DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME                 = 2,
+    DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE       = 3,
+    DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME                = 4,
+    DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE          = 5,
+    DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE            = 6,
+    DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION  = 7,
+    DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION  = 8,
+    DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO         = 9,
+    DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE        = 10,
+    DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL             = 11,
+    DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_SPECIALIZATION      = 12,
+    DISPLAYCONFIG_DEVICE_INFO_SET_MONITOR_SPECIALIZATION      = 13,
+    DISPLAYCONFIG_DEVICE_INFO_SET_RESERVED1                   = 14,
+    DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO_2       = 15,
+    DISPLAYCONFIG_DEVICE_INFO_SET_HDR_STATE                   = 16,
+    DISPLAYCONFIG_DEVICE_INFO_SET_WCG_STATE                   = 17,
+    DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32                    = 0xFFFFFFFF
+} DISPLAYCONFIG_DEVICE_INFO_TYPE;
+
+typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER
+{
+    DISPLAYCONFIG_DEVICE_INFO_TYPE  type;
+    UINT32                          size;
+    LUID                            adapterId;
+    UINT32                          id;
+} DISPLAYCONFIG_DEVICE_INFO_HEADER;
+
+typedef struct DISPLAYCONFIG_DESKTOP_IMAGE_INFO {
+    POINTL PathSourceSize;
+    RECTL  DesktopImageRegion;
+    RECTL  DesktopImageClip;
+} DISPLAYCONFIG_DESKTOP_IMAGE_INFO;
+
+typedef enum {
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = 0,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO = 1,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO = 2,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO = 3,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = 4,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = 5,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = 6,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = 9,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = 10,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = 11,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = 12,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = 13,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = 14,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST = 15,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED = 16,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_VIRTUAL = 17,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_USB_TUNNEL,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000,
+    DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF
+} DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY;
+
+typedef enum {
+    DISPLAYCONFIG_ROTATION_IDENTITY = 1,
+    DISPLAYCONFIG_ROTATION_ROTATE90 = 2,
+    DISPLAYCONFIG_ROTATION_ROTATE180 = 3,
+    DISPLAYCONFIG_ROTATION_ROTATE270 = 4,
+    DISPLAYCONFIG_ROTATION_FORCE_UINT32 = 0xFFFFFFFF
+} DISPLAYCONFIG_ROTATION;
+
+typedef enum {
+    DISPLAYCONFIG_SCALING_IDENTITY = 1,
+    DISPLAYCONFIG_SCALING_CENTERED = 2,
+    DISPLAYCONFIG_SCALING_STRETCHED = 3,
+    DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4,
+    DISPLAYCONFIG_SCALING_CUSTOM = 5,
+    DISPLAYCONFIG_SCALING_PREFERRED = 128,
+    DISPLAYCONFIG_SCALING_FORCE_UINT32 = 0xFFFFFFFF
+} DISPLAYCONFIG_SCALING;
+
+typedef struct DISPLAYCONFIG_RATIONAL {
+    UINT32 Numerator;
+    UINT32 Denominator;
+} DISPLAYCONFIG_RATIONAL;
+
+typedef enum {
+    DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0,
+    DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1,
+    DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2,
+    DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST,
+    DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST = 3,
+    DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32 = 0xFFFFFFFF
+} DISPLAYCONFIG_SCANLINE_ORDERING;
+
+typedef struct DISPLAYCONFIG_PATH_TARGET_INFO {
+    LUID                                  adapterId;
+    UINT32                                id;
+    union {
+        UINT32 modeInfoIdx;
+        struct {
+            UINT32 desktopModeInfoIdx : 16;
+            UINT32 targetModeInfoIdx : 16;
+        } DUMMYSTRUCTNAME;
+    } DUMMYUNIONNAME;
+    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology;
+    DISPLAYCONFIG_ROTATION                rotation;
+    DISPLAYCONFIG_SCALING                 scaling;
+    DISPLAYCONFIG_RATIONAL                refreshRate;
+    DISPLAYCONFIG_SCANLINE_ORDERING       scanLineOrdering;
+    BOOL                                  targetAvailable;
+    UINT32                                statusFlags;
+} DISPLAYCONFIG_PATH_TARGET_INFO;
+
+typedef struct DISPLAYCONFIG_PATH_SOURCE_INFO {
+    LUID   adapterId;
+    UINT32 id;
+    union {
+        UINT32 modeInfoIdx;
+        struct {
+          UINT32 cloneGroupId : 16;
+          UINT32 sourceModeInfoIdx : 16;
+        } DUMMYSTRUCTNAME;
+    } DUMMYUNIONNAME;
+  UINT32 statusFlags;
+} DISPLAYCONFIG_PATH_SOURCE_INFO;
+
+typedef struct DISPLAYCONFIG_PATH_INFO {
+    DISPLAYCONFIG_PATH_SOURCE_INFO sourceInfo;
+    DISPLAYCONFIG_PATH_TARGET_INFO targetInfo;
+    UINT32                         flags;
+} DISPLAYCONFIG_PATH_INFO;
+
+typedef enum {
+    DISPLAYCONFIG_PIXELFORMAT_8BPP = 1,
+    DISPLAYCONFIG_PIXELFORMAT_16BPP = 2,
+    DISPLAYCONFIG_PIXELFORMAT_24BPP = 3,
+    DISPLAYCONFIG_PIXELFORMAT_32BPP = 4,
+    DISPLAYCONFIG_PIXELFORMAT_NONGDI = 5,
+    DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32 = 0xffffffff
+} DISPLAYCONFIG_PIXELFORMAT;
+
+typedef struct DISPLAYCONFIG_SOURCE_MODE
+{
+    UINT32                      width;
+    UINT32                      height;
+    DISPLAYCONFIG_PIXELFORMAT   pixelFormat;
+    POINTL                      position;
+} DISPLAYCONFIG_SOURCE_MODE;
+typedef struct DISPLAYCONFIG_2DREGION {
+    UINT32 cx;
+    UINT32 cy;
+} DISPLAYCONFIG_2DREGION;
+
+typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO {
+    UINT64                          pixelRate;
+    DISPLAYCONFIG_RATIONAL          hSyncFreq;
+    DISPLAYCONFIG_RATIONAL          vSyncFreq;
+    DISPLAYCONFIG_2DREGION          activeSize;
+    DISPLAYCONFIG_2DREGION          totalSize;
+    union {
+        struct {
+            UINT32 videoStandard : 16;
+            UINT32 vSyncFreqDivider : 6;
+            UINT32 reserved : 10;
+        } AdditionalSignalInfo;
+        UINT32 videoStandard;
+    } DUMMYUNIONNAME;
+  DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering;
+} DISPLAYCONFIG_VIDEO_SIGNAL_INFO;
+typedef struct DISPLAYCONFIG_TARGET_MODE
+{
+    DISPLAYCONFIG_VIDEO_SIGNAL_INFO   targetVideoSignalInfo;
+} DISPLAYCONFIG_TARGET_MODE;
+typedef enum {
+    DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE = 1,
+    DISPLAYCONFIG_MODE_INFO_TYPE_TARGET = 2,
+    DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE = 3,
+    DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32 = 0xFFFFFFFF
+} DISPLAYCONFIG_MODE_INFO_TYPE;
+typedef struct DISPLAYCONFIG_MODE_INFO {
+    DISPLAYCONFIG_MODE_INFO_TYPE infoType;
+    UINT32                       id;
+    LUID                         adapterId;
+    union {
+        DISPLAYCONFIG_TARGET_MODE        targetMode;
+        DISPLAYCONFIG_SOURCE_MODE        sourceMode;
+        DISPLAYCONFIG_DESKTOP_IMAGE_INFO desktopImageInfo;
+    } DUMMYUNIONNAME;
+} DISPLAYCONFIG_MODE_INFO;
+
+
+LONG
+WINAPI 
+GetDisplayConfigBufferSizes(
+    UINT32 flags,
+    UINT32 *numPathArrayElements,
+    UINT32 *numModeInfoArrayElements)
+{
+  *numPathArrayElements = 0;
+  *numModeInfoArrayElements = 0;
+  return 0;
+}
+
+LONG
+WINAPI
+QueryDisplayConfig(
+    UINT32                    flags,
+    UINT32                    *numPathArrayElements,
+    DISPLAYCONFIG_PATH_INFO   *pathArray,
+    UINT32                    *numModeInfoArrayElements,
+    DISPLAYCONFIG_MODE_INFO   *modeInfoArray,
+    DISPLAYCONFIG_TOPOLOGY_ID *currentTopologyId)
+{
+  return ERROR_ACCESS_DENIED;
+}
+
+typedef enum ORIENTATION_PREFERENCE {
+    ORIENTATION_PREFERENCE_NONE              = 0x0,
+    ORIENTATION_PREFERENCE_LANDSCAPE         = 0x1,
+    ORIENTATION_PREFERENCE_PORTRAIT          = 0x2,
+    ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 0x4,
+    ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED  = 0x8
+} ORIENTATION_PREFERENCE;
+
+/***********************************************************************
+ *              DisplayConfigGetDeviceInfo (USER32.@)
+ */
+LONG WINAPI DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_HEADER 
*packet)
+{
+    FIXME( "DisplayConfigGetDeviceInfo: stub!\n" );
+    return 1;
+}
+
+/***********************************************************************
+ *              DisplayConfigSetDeviceInfo (USER32.@)
+ */
+LONG WINAPI DisplayConfigSetDeviceInfo( DISPLAYCONFIG_DEVICE_INFO_HEADER 
*packet )
+{
+    FIXME( "DisplayConfigSetDeviceInfo: stub!\n" );
+    return 1;
+}
+
+/**********************************************************************
+ *              GetDisplayAutoRotationPreferences (USER32.@)
+ */
+BOOL WINAPI GetDisplayAutoRotationPreferences( ORIENTATION_PREFERENCE 
*orientation )
+{
+    FIXME("(%p): stub\n", orientation);
+    *orientation = ORIENTATION_PREFERENCE_NONE;
+    return TRUE;
+}
+
+/***********************************************************************
+ *              SetDisplayConfig (USER32.@)
+ */
+LONG WINAPI SetDisplayConfig(UINT32 path_info_count, DISPLAYCONFIG_PATH_INFO 
*path_info, UINT32 mode_info_count,
+        DISPLAYCONFIG_MODE_INFO *mode_info, UINT32 flags)
+{
+    FIXME("path_info_count %u, path_info %p, mode_info_count %u, mode_info %p, 
flags %#x stub.\n",
+            path_info_count, path_info, mode_info_count, mode_info, flags);
+
+    return ERROR_SUCCESS;
+}
+
+/**********************************************************************
+ *              SetDisplayAutoRotationPreferences (USER32.@)
+ */
+BOOL WINAPI SetDisplayAutoRotationPreferences( ORIENTATION_PREFERENCE 
orientation )
+{
+    FIXME("(%d): stub\n", orientation);
+    return TRUE;
+}
diff --git a/win32ss/user/user32_vista/wine/win.c 
b/win32ss/user/user32_vista/wine/win.c
index 99f681a3f9c..1ce81abec91 100644
--- a/win32ss/user/user32_vista/wine/win.c
+++ b/win32ss/user/user32_vista/wine/win.c
@@ -18,18 +18,28 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#ifdef __REACTOS__
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+#include <windef.h>
+#include <wingdi.h>
+#include <winuser.h>
+#include <winbase.h>
+#else
 #include "ntstatus.h"
 #define WIN32_NO_STATUS
 #include "user_private.h"
 #include "controls.h"
 #include "winver.h"
 #include "wine/asm.h"
+#endif
 #include "wine/exception.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(win);
 
-
+#ifndef __REACTOS__
 #ifdef __i386__
 /* Some apps pass a non-stdcall proc to EnumChildWindows,
  * so we need a small assembly wrapper to call the proc.
@@ -1686,6 +1696,8 @@ LONG_PTR WINAPI SetWindowLongPtrA( HWND hwnd, INT offset, 
LONG_PTR newval )
 
 #endif /* _WIN64 */
 
+#endif
+
 /*****************************************************************************
  *              GetWindowDisplayAffinity (USER32.@)
  */

Reply via email to