mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +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
8 changed files with 89 additions and 1 deletions
|
@ -4924,6 +4924,15 @@ BOOL WINAPI GetWindowInfo(_In_ HWND, _Inout_ PWINDOWINFO);
|
|||
BOOL WINAPI GetMonitorInfoA(_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
|
||||
WINAPI
|
||||
GetWindowModuleFileNameA(
|
||||
|
|
|
@ -19,6 +19,7 @@ add_subdirectory(gdi/gdi32_vista)
|
|||
add_subdirectory(printing)
|
||||
add_subdirectory(reactx)
|
||||
add_subdirectory(user/user32)
|
||||
add_subdirectory(user/user32_vista)
|
||||
add_subdirectory(user/winsrv)
|
||||
|
||||
spec2def(win32k.sys win32k.spec ADD_IMPORTLIB)
|
||||
|
|
|
@ -80,7 +80,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_wsprintf wine win32ksys ${PSEH_LIB})
|
||||
target_link_libraries(user32 user32_vista_static user32_wsprintf wine win32ksys ${PSEH_LIB})
|
||||
add_dependencies(user32 asm)
|
||||
|
||||
if(MSVC AND (ARCH STREQUAL "i386"))
|
||||
|
|
|
@ -282,6 +282,8 @@
|
|||
279 stdcall GetDlgItemTextA(long long ptr long)
|
||||
280 stdcall GetDlgItemTextW(long long ptr long)
|
||||
281 stdcall GetDoubleClickTime() NtUserGetDoubleClickTime
|
||||
@ stdcall -version=0xA00+ GetDpiForSystem()
|
||||
@ stdcall -version=0xA00+ GetDpiForWindow(ptr)
|
||||
282 stdcall GetFocus()
|
||||
283 stdcall GetForegroundWindow() NtUserGetForegroundWindow
|
||||
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