Jacek Caban : winex11: Directly use win32u for user functions in settings.c.
Alexandre Julliard
julliard at winehq.org
Fri Apr 15 15:23:15 CDT 2022
Module: wine
Branch: master
Commit: dddb84433222c5623b295db6542b8944467c1288
URL: https://source.winehq.org/git/wine.git/?a=commit;h=dddb84433222c5623b295db6542b8944467c1288
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Apr 15 14:51:46 2022 +0200
winex11: Directly use win32u for user functions in settings.c.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winex11.drv/settings.c | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/dlls/winex11.drv/settings.c b/dlls/winex11.drv/settings.c
index ec8a01fbc58..1e711354c07 100644
--- a/dlls/winex11.drv/settings.c
+++ b/dlls/winex11.drv/settings.c
@@ -192,16 +192,19 @@ void init_registry_display_settings(void)
{
DEVMODEW dm = {.dmSize = sizeof(dm)};
DISPLAY_DEVICEW dd = {sizeof(dd)};
+ UNICODE_STRING device_name;
DWORD i = 0;
LONG ret;
- while (EnumDisplayDevicesW(NULL, i++, &dd, 0))
+ while (!NtUserEnumDisplayDevices( NULL, i++, &dd, 0 ))
{
+ RtlInitUnicodeString( &device_name, dd.DeviceName );
+
/* Skip if the device already has registry display settings */
- if (EnumDisplaySettingsExW(dd.DeviceName, ENUM_REGISTRY_SETTINGS, &dm, 0))
+ if (NtUserEnumDisplaySettings( &device_name, ENUM_REGISTRY_SETTINGS, &dm, 0 ))
continue;
- if (!EnumDisplaySettingsExW(dd.DeviceName, ENUM_CURRENT_SETTINGS, &dm, 0))
+ if (!NtUserEnumDisplaySettings( &device_name, ENUM_CURRENT_SETTINGS, &dm, 0 ))
{
ERR("Failed to query current display settings for %s.\n", wine_dbgstr_w(dd.DeviceName));
continue;
@@ -211,8 +214,8 @@ void init_registry_display_settings(void)
wine_dbgstr_w(dd.DeviceName), dm.dmPelsWidth, dm.dmPelsHeight, dm.dmBitsPerPel,
dm.dmDisplayFrequency, dm.u1.s2.dmPosition.x, dm.u1.s2.dmPosition.y);
- ret = ChangeDisplaySettingsExW(dd.DeviceName, &dm, NULL,
- CDS_GLOBAL | CDS_NORESET | CDS_UPDATEREGISTRY, NULL);
+ ret = NtUserChangeDisplaySettings( &device_name, &dm, NULL,
+ CDS_GLOBAL | CDS_NORESET | CDS_UPDATEREGISTRY, NULL );
if (ret != DISP_CHANGE_SUCCESSFUL)
ERR("Failed to save registry display settings for %s, returned %d.\n",
wine_dbgstr_w(dd.DeviceName), ret);
@@ -360,7 +363,7 @@ BOOL get_primary_adapter(WCHAR *name)
DWORD i;
dd.cb = sizeof(dd);
- for (i = 0; EnumDisplayDevicesW(NULL, i, &dd, 0); ++i)
+ for (i = 0; !NtUserEnumDisplayDevices( NULL, i, &dd, 0 ); ++i)
{
if (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE)
{
@@ -627,9 +630,10 @@ static LONG get_display_settings(struct x11drv_display_setting **new_displays,
INT display_idx, display_count = 0;
DISPLAY_DEVICEW display_device;
LONG ret = DISP_CHANGE_FAILED;
+ UNICODE_STRING device_name;
display_device.cb = sizeof(display_device);
- for (display_idx = 0; EnumDisplayDevicesW(NULL, display_idx, &display_device, 0); ++display_idx)
+ for (display_idx = 0; !NtUserEnumDisplayDevices( NULL, display_idx, &display_device, 0 ); ++display_idx)
++display_count;
displays = heap_calloc(display_count, sizeof(*displays));
@@ -638,7 +642,7 @@ static LONG get_display_settings(struct x11drv_display_setting **new_displays,
for (display_idx = 0; display_idx < display_count; ++display_idx)
{
- if (!EnumDisplayDevicesW(NULL, display_idx, &display_device, 0))
+ if (NtUserEnumDisplayDevices( NULL, display_idx, &display_device, 0 ))
goto done;
if (!handler.get_id(display_device.DeviceName, &displays[display_idx].id))
@@ -647,11 +651,13 @@ static LONG get_display_settings(struct x11drv_display_setting **new_displays,
goto done;
}
+ RtlInitUnicodeString( &device_name, display_device.DeviceName );
+
if (!dev_mode)
{
memset(®istry_mode, 0, sizeof(registry_mode));
registry_mode.dmSize = sizeof(registry_mode);
- if (!EnumDisplaySettingsExW(display_device.DeviceName, ENUM_REGISTRY_SETTINGS, ®istry_mode, 0))
+ if (!NtUserEnumDisplaySettings( &device_name, ENUM_REGISTRY_SETTINGS, ®istry_mode, 0 ))
goto done;
displays[display_idx].desired_mode = registry_mode;
@@ -663,7 +669,7 @@ static LONG get_display_settings(struct x11drv_display_setting **new_displays,
{
memset(¤t_mode, 0, sizeof(current_mode));
current_mode.dmSize = sizeof(current_mode);
- if (!EnumDisplaySettingsExW(display_device.DeviceName, ENUM_CURRENT_SETTINGS, ¤t_mode, 0))
+ if (!NtUserEnumDisplaySettings( &device_name, ENUM_CURRENT_SETTINGS, ¤t_mode, 0 ))
goto done;
displays[display_idx].desired_mode.dmFields |= DM_POSITION;
@@ -674,7 +680,7 @@ static LONG get_display_settings(struct x11drv_display_setting **new_displays,
{
memset(¤t_mode, 0, sizeof(current_mode));
current_mode.dmSize = sizeof(current_mode);
- if (!EnumDisplaySettingsExW(display_device.DeviceName, ENUM_CURRENT_SETTINGS, ¤t_mode, 0))
+ if (!NtUserEnumDisplaySettings( &device_name, ENUM_CURRENT_SETTINGS, ¤t_mode, 0 ))
goto done;
displays[display_idx].desired_mode = current_mode;
More information about the wine-cvs
mailing list