ZeroMemory(ImgInfo, sizeof(*ImgInfo));
- ImgInfo->hBitmap = LoadImage(hInstance,
- MAKEINTRESOURCE(IDB_ROSLOGO),
- IMAGE_BITMAP,
- 0,
- 0,
- LR_DEFAULTCOLOR);
+ ImgInfo->hBitmap = LoadImageW(hInstance,
+ MAKEINTRESOURCEW(IDB_ROSLOGO),
+ IMAGE_BITMAP,
+ 0,
+ 0,
+ LR_DEFAULTCOLOR);
if (ImgInfo->hBitmap != NULL)
{
- GetObject(ImgInfo->hBitmap, sizeof(BITMAP), &bitmap);
+ GetObject(ImgInfo->hBitmap, sizeof(bitmap), &bitmap);
ImgInfo->cxSource = bitmap.bmWidth;
ImgInfo->cySource = bitmap.bmHeight;
TRACE("IsLiveCD()\n");
- rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- REGSTR_PATH_CURRENT_CONTROL_SET,
- 0,
- KEY_QUERY_VALUE,
- &ControlKey);
+ rc = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+ REGSTR_PATH_CURRENT_CONTROL_SET,
+ 0,
+ KEY_QUERY_VALUE,
+ &ControlKey);
if (rc != ERROR_SUCCESS)
{
WARN("RegOpenKeyEx() failed with error %lu\n", rc);
{
if (bSpain == FALSE)
{
- LoadStringW(hInstance, IDS_SPAIN, lang, 255);
+ LoadStringW(hInstance, IDS_SPAIN, lang, ARRAYSIZE(lang));
bSpain = TRUE;
}
else
}
else
{
- GetLocaleInfoW(lcid, LOCALE_SLANGUAGE, lang, sizeof(lang)/sizeof(WCHAR));
+ GetLocaleInfoW(lcid, LOCALE_SLANGUAGE, lang, ARRAYSIZE(lang));
}
if (bNoShow == FALSE)
/* Select current locale */
/* or should it be System and not user? */
- GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_SLANGUAGE, langSel, sizeof(langSel)/sizeof(WCHAR));
+ GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_SLANGUAGE, langSel, ARRAYSIZE(langSel));
SendMessageW(hList,
CB_SELECTSTRING,
}
-#if 0
-static
-BOOL
-GetLayoutID(LPWSTR szLayoutNum, LPWSTR szLCID)
-{
- DWORD dwBufLen;
- DWORD dwRes;
- HKEY hKey;
- WCHAR szTempLCID[9];
-
- // Get the Layout ID
- if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Keyboard Layout\\Preload", 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
- {
- dwBufLen = sizeof(szTempLCID);
- dwRes = RegQueryValueExW(hKey, szLayoutNum, NULL, NULL, (LPBYTE)szTempLCID, &dwBufLen);
-
- if (dwRes != ERROR_SUCCESS)
- {
- RegCloseKey(hKey);
- return FALSE;
- }
-
- RegCloseKey(hKey);
- }
-
- // Look for a substitude of this layout
- if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Keyboard Layout\\Substitutes", 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
- {
- dwBufLen = sizeof(szTempLCID);
-
- if (RegQueryValueExW(hKey, szTempLCID, NULL, NULL, (LPBYTE)szLCID, &dwBufLen) != ERROR_SUCCESS)
- {
- // No substitute found, then use the old LCID
- wcscpy(szLCID, szTempLCID);
- }
-
- RegCloseKey(hKey);
- }
- else
- {
- // Substitutes key couldn't be opened, so use the old LCID
- wcscpy(szLCID, szTempLCID);
- }
-
- return TRUE;
-}
-#endif
-
-
static
BOOL
GetLayoutName(
DWORD dwBufLen;
WCHAR szBuf[MAX_PATH], szDispName[MAX_PATH], szIndex[MAX_PATH], szPath[MAX_PATH];
HANDLE hLib;
- unsigned i, j, k;
+ UINT i, j, k;
wsprintf(szBuf, L"SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\%s", szLCID);
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, (LPCTSTR)szBuf, 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
{
- dwBufLen = sizeof(szBuf);
+ dwBufLen = sizeof(szDispName);
if (RegQueryValueExW(hKey, L"Layout Display Name", NULL, NULL, (LPBYTE)szDispName, &dwBufLen) == ERROR_SUCCESS)
{
szDispName[i] = szDispName[i + 1];
}
- if (ExpandEnvironmentStringsW(szDispName, szPath, MAX_PATH))
+ if (ExpandEnvironmentStringsW(szDispName, szPath, ARRAYSIZE(szPath)))
{
hLib = LoadLibraryW(szPath);
if (hLib)
{
- if (LoadStringW(hLib, _wtoi(szIndex), szPath, sizeof(szPath) / sizeof(WCHAR)) != 0)
+ if (LoadStringW(hLib, _wtoi(szIndex), szPath, ARRAYSIZE(szPath)) != 0)
{
wcscpy(szName, szPath);
RegCloseKey(hKey);
SetKeyboardLayout(
HWND hwnd)
{
-#if 0
INT iCurSel;
- PWSTR pszLCID;
+ ULONG ulLayoutId;
HKL hKl;
- WCHAR szLCID[9];
+ WCHAR szLayoutId[9];
iCurSel = SendMessageW(hwnd, CB_GETCURSEL, 0, 0);
if (iCurSel == CB_ERR)
return;
- pszLCID = (PWSTR)SendMessageW(hwnd, CB_GETITEMDATA, iCurSel, 0);
- if (pszLCID == (PWSTR)CB_ERR)
+ ulLayoutId = (ULONG)SendMessageW(hwnd, CB_GETITEMDATA, iCurSel, 0);
+ if (ulLayoutId == (ULONG)CB_ERR)
return;
- if (GetLayoutID(pszLCID, szLCID))
- {
- hKl = LoadKeyboardLayoutW(szLCID, KLF_ACTIVATE | KLF_SETFORPROCESS);
- SystemParametersInfoW(SPI_SETDEFAULTINPUTLANG, 0, &hKl, SPIF_SENDWININICHANGE);
- }
-#endif
+ swprintf(szLayoutId, L"%08lx", ulLayoutId);
+
+ hKl = LoadKeyboardLayoutW(szLayoutId, KLF_ACTIVATE | KLF_REPLACELANG | KLF_SETFORPROCESS);
+ SystemParametersInfoW(SPI_SETDEFAULTINPUTLANG, 0, &hKl, SPIF_SENDWININICHANGE);
}
HWND hItemsList)
{
HKEY hKey;
- WCHAR szLayoutID[9], KeyName[MAX_PATH];
+ WCHAR szLayoutId[9], szCurrentLayoutId[9];
+ WCHAR KeyName[MAX_PATH];
DWORD dwIndex = 0;
DWORD dwSize;
INT iIndex;
LONG lError;
- ULONG ulLayoutID;
+ ULONG ulLayoutId;
+
+ if (!GetKeyboardLayoutNameW(szCurrentLayoutId))
+ wcscpy(szCurrentLayoutId, L"00000409");
lError = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
L"System\\CurrentControlSet\\Control\\Keyboard Layouts",
while (TRUE)
{
- dwSize = sizeof(szLayoutID) / sizeof(WCHAR);
+ dwSize = ARRAYSIZE(szLayoutId);
lError = RegEnumKeyExW(hKey,
dwIndex,
- szLayoutID,
+ szLayoutId,
&dwSize,
NULL,
NULL,
if (lError != ERROR_SUCCESS)
break;
- GetLayoutName(szLayoutID, KeyName);
+ GetLayoutName(szLayoutId, KeyName);
iIndex = (INT)SendMessageW(hItemsList, CB_ADDSTRING, 0, (LPARAM)KeyName);
- ulLayoutID = wcstoul(szLayoutID, NULL, 16);
- SendMessageW(hItemsList, CB_SETITEMDATA, iIndex, (LPARAM)ulLayoutID);
+ ulLayoutId = wcstoul(szLayoutId, NULL, 16);
+ SendMessageW(hItemsList, CB_SETITEMDATA, iIndex, (LPARAM)ulLayoutId);
- // FIXME!
- if (wcscmp(szLayoutID, L"00000409") == 0)
+ if (wcscmp(szLayoutId, szCurrentLayoutId) == 0)
{
SendMessageW(hItemsList, CB_SETCURSEL, (WPARAM)iIndex, (LPARAM)0);
}
i = 0;
while (LocaleData[i].pValue != NULL)
{
- if (GetLocaleInfo(lcid,
- LocaleData[i].LCType | LOCALE_NOUSEROVERRIDE,
- szBuffer,
- sizeof(szBuffer) / sizeof(WCHAR)))
+ if (GetLocaleInfoW(lcid,
+ LocaleData[i].LCType | LOCALE_NOUSEROVERRIDE,
+ szBuffer,
+ ARRAYSIZE(szBuffer)))
{
RegSetValueExW(hLocaleKey,
LocaleData[i].pValue,
if (lpDrawItem->CtlID == uCtlID)
{
- /* position image in centre of dialog */
+ /* Position image in centre of dialog */
left = (lpDrawItem->rcItem.right - pState->ImageInfo.cxSource) / 2;
hdcMem = CreateCompatibleDC(lpDrawItem->hDC);
PSTATE pState;
/* Retrieve pointer to the state */
- pState = (PSTATE)GetWindowLongPtr (hwndDlg, GWL_USERDATA);
+ pState = (PSTATE)GetWindowLongPtrW(hwndDlg, GWLP_USERDATA);
switch (uMsg)
{
case WM_INITDIALOG:
/* Save pointer to the global state */
pState = (PSTATE)lParam;
- SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pState);
+ SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (DWORD_PTR)pState);
/* Center the dialog window */
- CenterWindow (hwndDlg);
+ CenterWindow(hwndDlg);
+ /* Fill the language and keyboard layout lists */
CreateLanguagesList(GetDlgItem(hwndDlg, IDC_LANGUAGELIST));
CreateKeyboardLayoutList(GetDlgItem(hwndDlg, IDC_LAYOUTLIST));
+ /* Disable the 'Cancel' button*/
EnableWindow(GetDlgItem(hwndDlg, IDCANCEL), FALSE);
return FALSE;
if (NewLcid == (LCID)CB_ERR)
break;
+ /* Set the locale for the current thread */
NtSetDefaultLocale(TRUE, NewLcid);
+
+ /* Store the locale setings in the registry */
InitializeDefaultUserLocale(&NewLcid);
SetKeyboardLayout(GetDlgItem(hwndDlg, IDC_LAYOUTLIST));
PSTATE pState;
/* Retrieve pointer to the state */
- pState = (PSTATE)GetWindowLongPtr (hwndDlg, GWL_USERDATA);
+ pState = (PSTATE)GetWindowLongPtrW(hwndDlg, GWLP_USERDATA);
switch (uMsg)
{
case WM_INITDIALOG:
/* Save pointer to the state */
pState = (PSTATE)lParam;
- SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pState);
+ SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (DWORD_PTR)pState);
/* Center the dialog window */
CenterWindow(hwndDlg);
switch (pState->NextPage)
{
case LOCALEPAGE:
- DialogBoxParam(hInstance,
- MAKEINTRESOURCE(IDD_LOCALEPAGE),
- NULL,
- LocaleDlgProc,
- (LPARAM)pState);
+ DialogBoxParamW(hInstance,
+ MAKEINTRESOURCEW(IDD_LOCALEPAGE),
+ NULL,
+ LocaleDlgProc,
+ (LPARAM)pState);
break;
case STARTPAGE:
- DialogBoxParam(hInstance,
- MAKEINTRESOURCE(IDD_STARTPAGE),
- NULL,
- StartDlgProc,
- (LPARAM)pState);
+ DialogBoxParamW(hInstance,
+ MAKEINTRESOURCEW(IDD_STARTPAGE),
+ NULL,
+ StartDlgProc,
+ (LPARAM)pState);
break;
default: