mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-15 06:10:39 +00:00
winemac: Directly use ntdll to write display settings.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
ffa7c40951
commit
5c9eb1905c
|
@ -178,6 +178,14 @@ static BOOL read_registry_settings(const WCHAR *device_name, DEVMODEW *dm)
|
|||
}
|
||||
|
||||
|
||||
static BOOL set_setting_value(HKEY hkey, const char *name, DWORD val)
|
||||
{
|
||||
WCHAR nameW[128];
|
||||
UNICODE_STRING str = { asciiz_to_unicode(nameW, name) - sizeof(WCHAR), sizeof(nameW), nameW };
|
||||
return !NtSetValueKey(hkey, &str, 0, REG_DWORD, &val, sizeof(val));
|
||||
}
|
||||
|
||||
|
||||
static BOOL write_registry_settings(const WCHAR *device_name, const DEVMODEW *dm)
|
||||
{
|
||||
WCHAR wine_mac_reg_key[MAX_PATH];
|
||||
|
@ -199,23 +207,17 @@ static BOOL write_registry_settings(const WCHAR *device_name, const DEVMODEW *dm
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
#define set_value(name, data) \
|
||||
if (RegSetValueExA(hkey, name, 0, REG_DWORD, (const BYTE*)(data), sizeof(DWORD))) \
|
||||
ret = FALSE
|
||||
ret &= set_setting_value(hkey, "DefaultSettings.BitsPerPel", dm->dmBitsPerPel);
|
||||
ret &= set_setting_value(hkey, "DefaultSettings.XResolution", dm->dmPelsWidth);
|
||||
ret &= set_setting_value(hkey, "DefaultSettings.YResolution", dm->dmPelsHeight);
|
||||
ret &= set_setting_value(hkey, "DefaultSettings.VRefresh", dm->dmDisplayFrequency);
|
||||
ret &= set_setting_value(hkey, "DefaultSettings.Flags", dm->dmDisplayFlags);
|
||||
ret &= set_setting_value(hkey, "DefaultSettings.XPanning", dm->dmPosition.x);
|
||||
ret &= set_setting_value(hkey, "DefaultSettings.YPanning", dm->dmPosition.y);
|
||||
ret &= set_setting_value(hkey, "DefaultSettings.Orientation", dm->dmDisplayOrientation);
|
||||
ret &= set_setting_value(hkey, "DefaultSettings.FixedOutput", dm->dmDisplayFixedOutput);
|
||||
|
||||
set_value("DefaultSettings.BitsPerPel", &dm->dmBitsPerPel);
|
||||
set_value("DefaultSettings.XResolution", &dm->dmPelsWidth);
|
||||
set_value("DefaultSettings.YResolution", &dm->dmPelsHeight);
|
||||
set_value("DefaultSettings.VRefresh", &dm->dmDisplayFrequency);
|
||||
set_value("DefaultSettings.Flags", &dm->dmDisplayFlags);
|
||||
set_value("DefaultSettings.XPanning", &dm->dmPosition.x);
|
||||
set_value("DefaultSettings.YPanning", &dm->dmPosition.y);
|
||||
set_value("DefaultSettings.Orientation", &dm->dmDisplayOrientation);
|
||||
set_value("DefaultSettings.FixedOutput", &dm->dmDisplayFixedOutput);
|
||||
|
||||
#undef set_value
|
||||
|
||||
RegCloseKey(hkey);
|
||||
NtClose(hkey);
|
||||
release_display_device_init_mutex(mutex);
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue