X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fdll%2Fwin32%2Fsyssetup%2Fwizard.c;h=d34f79ea3a080193a4f007dd3cb6f66d71002b5b;hp=461998c3075c499af9f1e6919a6788c6a1045cac;hb=31391c60b173d82af9e29c2e89bffefb3e858197;hpb=acc9f337759a1834d2241d3eda860cca526376b4 diff --git a/reactos/dll/win32/syssetup/wizard.c b/reactos/dll/win32/syssetup/wizard.c index 461998c3075..d34f79ea3a0 100644 --- a/reactos/dll/win32/syssetup/wizard.c +++ b/reactos/dll/win32/syssetup/wizard.c @@ -2211,6 +2211,70 @@ ProcessUnattendInf( } while (SetupFindNextLine(&InfContext, &InfContext)); + if (SetupFindFirstLineW(pSetupData->hUnattendedInf, + L"Display", + NULL, + &InfContext)) + { + DEVMODEW dm = { { 0 } }; + dm.dmSize = sizeof(dm); + if (EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &dm)) + { + do + { + int iValue; + if (!SetupGetStringFieldW(&InfContext, + 0, + szName, + sizeof(szName) / sizeof(WCHAR), + &LineLength)) + { + DPRINT1("Error: SetupGetStringField failed with %d\n", GetLastError()); + return; + } + + if (!SetupGetStringFieldW(&InfContext, + 1, + szValue, + sizeof(szValue) / sizeof(WCHAR), + &LineLength)) + { + DPRINT1("Error: SetupGetStringField failed with %d\n", GetLastError()); + return; + } + iValue = _wtoi(szValue); + DPRINT1("Name %S Value %i\n", szName, iValue); + + if (!iValue) + continue; + + if (!wcscmp(szName, L"BitsPerPel")) + { + dm.dmFields |= DM_BITSPERPEL; + dm.dmBitsPerPel = iValue; + } + else if (!wcscmp(szName, L"XResolution")) + { + dm.dmFields |= DM_PELSWIDTH; + dm.dmPelsWidth = iValue; + } + else if (!wcscmp(szName, L"YResolution")) + { + dm.dmFields |= DM_PELSHEIGHT; + dm.dmPelsHeight = iValue; + } + else if (!wcscmp(szName, L"VRefresh")) + { + dm.dmFields |= DM_DISPLAYFREQUENCY; + dm.dmDisplayFrequency = iValue; + } + } + while (SetupFindNextLine(&InfContext, &InfContext)); + + ChangeDisplaySettingsW(&dm, CDS_UPDATEREGISTRY); + } + } + if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", 0,