[USER32_VISTA][USER32] Sync some parts with WINE-10.0

This commit is contained in:
Justin Miller 2025-01-28 03:47:40 -08:00 committed by Justin Miller
parent 245513e7ec
commit 6dccccc2a3
9 changed files with 747 additions and 6 deletions

View file

@ -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)

View file

@ -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"))

View file

@ -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)

View file

@ -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)

View file

@ -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;
}

View file

@ -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)
{

View file

@ -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

View file

@ -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;
}

View file

@ -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.@)
*/