Implement a save routine for the GeoID. Stores the current GeoID in the default user profile too, if required.
CORE-10172 #resolve

svn path=/trunk/; revision=69309
This commit is contained in:
Eric Kohl 2015-09-20 19:34:51 +00:00
parent 0634e43fab
commit ee2780fe5f

View file

@ -475,6 +475,76 @@ CreateLocationsList(HWND hWnd)
return userGeoID;
}
VOID
SaveGeoID(
PGLOBALDATA pGlobalData)
{
HKEY hGeoKey;
WCHAR value[15];
DWORD valuesize;
DWORD ret;
wsprintf(value, L"%lu", (DWORD)pGlobalData->geoid);
valuesize = (wcslen(value) + 1) * sizeof(WCHAR);
if (pGlobalData->bApplyToDefaultUser)
{
ret = RegOpenKeyExW(HKEY_USERS,
L".DEFAULT\\Control Panel\\International\\Geo",
0,
KEY_WRITE,
&hGeoKey);
if (ret != ERROR_SUCCESS)
{
PrintErrorMsgBox(IDS_ERROR_DEF_INT_KEY_REG);
return;
}
ret = RegSetValueExW(hGeoKey,
L"Nation",
0,
REG_SZ,
(PBYTE)value,
valuesize);
RegFlushKey(hGeoKey);
RegCloseKey(hGeoKey);
if (ret != ERROR_SUCCESS)
{
PrintErrorMsgBox(IDS_ERROR_INT_KEY_REG);
return;
}
}
ret = RegOpenKeyExW(HKEY_CURRENT_USER,
L"Control Panel\\International\\Geo",
0,
KEY_WRITE,
&hGeoKey);
if (ret != ERROR_SUCCESS)
{
PrintErrorMsgBox(IDS_ERROR_INT_KEY_REG);
return;
}
ret = RegSetValueExW(hGeoKey,
L"Nation",
0,
REG_SZ,
(PBYTE)value,
valuesize);
RegFlushKey(hGeoKey);
RegCloseKey(hGeoKey);
if (ret != ERROR_SUCCESS)
{
PrintErrorMsgBox(IDS_ERROR_INT_KEY_REG);
return;
}
}
DWORD
VerifyUnattendLCID(HWND hwndDlg)
{
@ -630,7 +700,7 @@ GeneralPageProc(HWND hwndDlg,
/* Set new GEO ID */
if (pGlobalData->fGeoIdChanged == TRUE)
{
SetUserGeoID(pGlobalData->geoid);
SaveGeoID(pGlobalData);
pGlobalData->fGeoIdChanged = FALSE;
}