mirror of
https://github.com/reactos/reactos.git
synced 2024-06-28 17:01:28 +00:00
[USER32] Introduce user32_vista and stubplement GetDpiForWindow() (#6208)
Add user32_vista.dll to introduce new NT6+ User32 features without changing the existing User32.dll when compiled as NT5.x. Also implements a stub for GetDpiForWindow(). The GetDpiForWindow() function will be required to Wine-sync common controls to modern Wine versions. Changes: Expose GetDpiForWindow() function and USER_DEFAULT_SCREEN_DPI to appropriate versions in winuser.h Introduce a basic user32_vista library that can be expanded as needed.
This commit is contained in:
parent
063997f2e0
commit
ad73e17418
|
@ -4924,6 +4924,15 @@ BOOL WINAPI GetWindowInfo(_In_ HWND, _Inout_ PWINDOWINFO);
|
||||||
BOOL WINAPI GetMonitorInfoA(_In_ HMONITOR, _Inout_ LPMONITORINFO);
|
BOOL WINAPI GetMonitorInfoA(_In_ HMONITOR, _Inout_ LPMONITORINFO);
|
||||||
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO);
|
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO);
|
||||||
|
|
||||||
|
#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
|
||||||
|
#define USER_DEFAULT_SCREEN_DPI 96
|
||||||
|
#endif /* _WIN32_WINNT >= _WIN32_WINNT_VISTA */
|
||||||
|
|
||||||
|
#if (_WIN32_WINNT >= 0x0605) /* Windows 10 pre-Threshold */
|
||||||
|
UINT WINAPI GetDpiForSystem(VOID);
|
||||||
|
UINT WINAPI GetDpiForWindow(_In_ HWND hwnd);
|
||||||
|
#endif /* _WIN32_WINNT >= 0x0605 */
|
||||||
|
|
||||||
UINT
|
UINT
|
||||||
WINAPI
|
WINAPI
|
||||||
GetWindowModuleFileNameA(
|
GetWindowModuleFileNameA(
|
||||||
|
|
|
@ -19,6 +19,7 @@ add_subdirectory(gdi/gdi32_vista)
|
||||||
add_subdirectory(printing)
|
add_subdirectory(printing)
|
||||||
add_subdirectory(reactx)
|
add_subdirectory(reactx)
|
||||||
add_subdirectory(user/user32)
|
add_subdirectory(user/user32)
|
||||||
|
add_subdirectory(user/user32_vista)
|
||||||
add_subdirectory(user/winsrv)
|
add_subdirectory(user/winsrv)
|
||||||
|
|
||||||
spec2def(win32k.sys win32k.spec ADD_IMPORTLIB)
|
spec2def(win32k.sys win32k.spec ADD_IMPORTLIB)
|
||||||
|
|
|
@ -80,7 +80,7 @@ add_library(user32 MODULE
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/user32.def)
|
${CMAKE_CURRENT_BINARY_DIR}/user32.def)
|
||||||
|
|
||||||
set_module_type(user32 win32dll UNICODE ENTRYPOINT DllMain 12)
|
set_module_type(user32 win32dll UNICODE ENTRYPOINT DllMain 12)
|
||||||
target_link_libraries(user32 user32_wsprintf wine win32ksys ${PSEH_LIB})
|
target_link_libraries(user32 user32_vista_static user32_wsprintf wine win32ksys ${PSEH_LIB})
|
||||||
add_dependencies(user32 asm)
|
add_dependencies(user32 asm)
|
||||||
|
|
||||||
if(MSVC AND (ARCH STREQUAL "i386"))
|
if(MSVC AND (ARCH STREQUAL "i386"))
|
||||||
|
|
|
@ -282,6 +282,8 @@
|
||||||
279 stdcall GetDlgItemTextA(long long ptr long)
|
279 stdcall GetDlgItemTextA(long long ptr long)
|
||||||
280 stdcall GetDlgItemTextW(long long ptr long)
|
280 stdcall GetDlgItemTextW(long long ptr long)
|
||||||
281 stdcall GetDoubleClickTime() NtUserGetDoubleClickTime
|
281 stdcall GetDoubleClickTime() NtUserGetDoubleClickTime
|
||||||
|
@ stdcall -version=0xA00+ GetDpiForSystem()
|
||||||
|
@ stdcall -version=0xA00+ GetDpiForWindow(ptr)
|
||||||
282 stdcall GetFocus()
|
282 stdcall GetFocus()
|
||||||
283 stdcall GetForegroundWindow() NtUserGetForegroundWindow
|
283 stdcall GetForegroundWindow() NtUserGetForegroundWindow
|
||||||
284 stdcall GetGUIThreadInfo(long ptr) NtUserGetGUIThreadInfo
|
284 stdcall GetGUIThreadInfo(long ptr) NtUserGetGUIThreadInfo
|
||||||
|
|
25
win32ss/user/user32_vista/CMakeLists.txt
Normal file
25
win32ss/user/user32_vista/CMakeLists.txt
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
|
||||||
|
spec2def(user32_vista.dll user32_vista.spec ADD_IMPORTLIB)
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
include
|
||||||
|
${REACTOS_SOURCE_DIR}/win32ss/include)
|
||||||
|
|
||||||
|
list(APPEND SOURCE
|
||||||
|
dpi.c)
|
||||||
|
|
||||||
|
add_library(user32_vista_static
|
||||||
|
${SOURCE})
|
||||||
|
target_link_libraries(user32_vista_static win32ksys)
|
||||||
|
add_dependencies(user32_vista_static psdk)
|
||||||
|
|
||||||
|
add_library(user32_vista MODULE
|
||||||
|
${SOURCE}
|
||||||
|
user32_vista.rc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/user32_vista.def)
|
||||||
|
|
||||||
|
set_module_type(user32_vista win32dll UNICODE ENTRYPOINT 0)
|
||||||
|
add_importlibs(user32_vista user32 gdi32 ntdll)
|
||||||
|
target_link_libraries(user32_vista user32_vista_static win32ksys)
|
||||||
|
add_dependencies(user32_vista psdk)
|
||||||
|
add_cd_file(TARGET user32_vista DESTINATION reactos/system32 FOR all)
|
44
win32ss/user/user32_vista/dpi.c
Normal file
44
win32ss/user/user32_vista/dpi.c
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
/*
|
||||||
|
* PROJECT: ReactOS Kernel - Vista+ APIs
|
||||||
|
* LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
|
||||||
|
* PURPOSE: DPI functions for user32 and user32_vista.
|
||||||
|
* COPYRIGHT: Copyright 2024 Carl Bialorucki <cbialo2@outlook.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define WIN32_NO_STATUS
|
||||||
|
#define _INC_WINDOWS
|
||||||
|
#define COM_NO_WINDOWS_H
|
||||||
|
#include <windef.h>
|
||||||
|
#include <wingdi.h>
|
||||||
|
#include <winuser.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
|
#include <debug.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @stub
|
||||||
|
*/
|
||||||
|
UINT
|
||||||
|
WINAPI
|
||||||
|
GetDpiForSystem(VOID)
|
||||||
|
{
|
||||||
|
HDC hDC;
|
||||||
|
UINT Dpi;
|
||||||
|
hDC = GetDC(NULL);
|
||||||
|
Dpi = GetDeviceCaps(hDC, LOGPIXELSY);
|
||||||
|
ReleaseDC(NULL, hDC);
|
||||||
|
return Dpi;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @stub
|
||||||
|
*/
|
||||||
|
UINT
|
||||||
|
WINAPI
|
||||||
|
GetDpiForWindow(
|
||||||
|
_In_ HWND hWnd)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED_ONCE;
|
||||||
|
UNREFERENCED_PARAMETER(hWnd);
|
||||||
|
return GetDpiForSystem();
|
||||||
|
}
|
5
win32ss/user/user32_vista/user32_vista.rc
Normal file
5
win32ss/user/user32_vista/user32_vista.rc
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define REACTOS_VERSION_DLL
|
||||||
|
#define REACTOS_STR_FILE_DESCRIPTION "User32 Extensions DLL"
|
||||||
|
#define REACTOS_STR_INTERNAL_NAME "user32_vista"
|
||||||
|
#define REACTOS_STR_ORIGINAL_FILENAME "user32_vista.dll"
|
||||||
|
#include <reactos/version.rc>
|
2
win32ss/user/user32_vista/user32_vista.spec
Normal file
2
win32ss/user/user32_vista/user32_vista.spec
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
@ stdcall GetDpiForSystem()
|
||||||
|
@ stdcall GetDpiForWindow(ptr)
|
Loading…
Reference in a new issue