- Unicodify the CPL. Get rid of <tchar.h>.
- Pass a pointer to all getter and setter functions of the customization property sheet pages.
- Remove the "Property of" text from the property sheets.
- Convert "SendMessage(GetDlgItem(..." to "SendDlgItemMessage(...".

svn path=/trunk/; revision=69308
This commit is contained in:
Eric Kohl 2015-09-20 19:00:10 +00:00
parent 40d3c19242
commit 0634e43fab
12 changed files with 1161 additions and 1162 deletions

View file

@ -25,12 +25,12 @@ GetSupportedCP(VOID)
CPINFOEX cpInfEx; CPINFOEX cpInfEx;
//TCHAR Section[MAX_PATH]; //TCHAR Section[MAX_PATH];
Count = SetupGetLineCount(hIntlInf, _T("CodePages")); Count = SetupGetLineCountW(hIntlInf, L"CodePages");
if (Count <= 0) return FALSE; if (Count <= 0) return FALSE;
for (Number = 0; Number < (UINT)Count; Number++) for (Number = 0; Number < (UINT)Count; Number++)
{ {
if (SetupGetLineByIndex(hIntlInf, _T("CodePages"), Number, &infCont) && if (SetupGetLineByIndexW(hIntlInf, L"CodePages", Number, &infCont) &&
SetupGetIntField(&infCont, 0, (PINT)&uiCPage)) SetupGetIntField(&infCont, 0, (PINT)&uiCPage))
{ {
if (!(hCPage = GlobalAlloc(GHND, sizeof(CPAGE)))) return FALSE; if (!(hCPage = GlobalAlloc(GHND, sizeof(CPAGE)))) return FALSE;
@ -43,9 +43,9 @@ GetSupportedCP(VOID)
if (GetCPInfoEx(uiCPage, 0, &cpInfEx)) if (GetCPInfoEx(uiCPage, 0, &cpInfEx))
{ {
_tcscpy(lpCPage->Name, cpInfEx.CodePageName); wcscpy(lpCPage->Name, cpInfEx.CodePageName);
} }
else if (!SetupGetStringField(&infCont, 1, lpCPage->Name, MAX_PATH, NULL)) else if (!SetupGetStringFieldW(&infCont, 1, lpCPage->Name, MAX_PATH, NULL))
{ {
GlobalUnlock(hCPage); GlobalUnlock(hCPage);
GlobalFree(hCPage); GlobalFree(hCPage);
@ -61,13 +61,13 @@ GetSupportedCP(VOID)
} }
static BOOL CALLBACK static BOOL CALLBACK
InstalledCPProc(LPTSTR lpStr) InstalledCPProc(PWSTR lpStr)
{ {
LPCPAGE lpCP; LPCPAGE lpCP;
UINT uiCP; UINT uiCP;
lpCP = PCPage; lpCP = PCPage;
uiCP = _ttol(lpStr); uiCP = _wtol(lpStr);
for (;;) for (;;)
{ {
@ -95,7 +95,7 @@ InitCodePagesList(HWND hwndDlg)
hList = GetDlgItem(hwndDlg, IDC_CONV_TABLES); hList = GetDlgItem(hwndDlg, IDC_CONV_TABLES);
hIntlInf = SetupOpenInfFile(_T("intl.inf"), NULL, INF_STYLE_WIN4, NULL); hIntlInf = SetupOpenInfFileW(L"intl.inf", NULL, INF_STYLE_WIN4, NULL);
if (hIntlInf == INVALID_HANDLE_VALUE) if (hIntlInf == INVALID_HANDLE_VALUE)
return; return;
@ -159,21 +159,21 @@ InitCodePagesList(HWND hwndDlg)
} }
static BOOL CALLBACK static BOOL CALLBACK
LocalesEnumProc(LPTSTR lpLocale) LocalesEnumProc(PWSTR lpLocale)
{ {
LCID lcid; LCID lcid;
TCHAR lang[255]; WCHAR lang[255];
INT index; INT index;
BOOL bNoShow = FALSE; BOOL bNoShow = FALSE;
lcid = _tcstoul(lpLocale, NULL, 16); lcid = wcstoul(lpLocale, NULL, 16);
if (lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH), SORT_DEFAULT) || if (lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH), SORT_DEFAULT) ||
lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN), SORT_DEFAULT)) lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN), SORT_DEFAULT))
{ {
if (bSpain == FALSE) if (bSpain == FALSE)
{ {
LoadString(hApplet, IDS_SPAIN, lang, 255); LoadStringW(hApplet, IDS_SPAIN, lang, 255);
bSpain = TRUE; bSpain = TRUE;
} }
else else
@ -183,20 +183,20 @@ LocalesEnumProc(LPTSTR lpLocale)
} }
else else
{ {
GetLocaleInfo(lcid, LOCALE_SLANGUAGE, lang, sizeof(lang)/sizeof(TCHAR)); GetLocaleInfoW(lcid, LOCALE_SLANGUAGE, lang, sizeof(lang)/sizeof(WCHAR));
} }
if (bNoShow == FALSE) if (bNoShow == FALSE)
{ {
index = SendMessage(hLangList, index = SendMessageW(hLangList,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)lang); (LPARAM)lang);
SendMessage(hLangList, SendMessageW(hLangList,
CB_SETITEMDATA, CB_SETITEMDATA,
index, index,
(LPARAM)lcid); (LPARAM)lcid);
} }
return TRUE; return TRUE;
@ -205,17 +205,17 @@ LocalesEnumProc(LPTSTR lpLocale)
static VOID static VOID
InitLanguagesList(HWND hwndDlg) InitLanguagesList(HWND hwndDlg)
{ {
TCHAR langSel[255]; WCHAR langSel[255];
hLangList = GetDlgItem(hwndDlg, IDC_LANGUAGE_COMBO); hLangList = GetDlgItem(hwndDlg, IDC_LANGUAGE_COMBO);
bSpain = FALSE; bSpain = FALSE;
EnumSystemLocales(LocalesEnumProc, LCID_SUPPORTED); EnumSystemLocalesW(LocalesEnumProc, LCID_SUPPORTED);
/* Select current locale */ /* Select current locale */
GetLocaleInfo(GetSystemDefaultLCID(), LOCALE_SLANGUAGE, langSel, sizeof(langSel)/sizeof(TCHAR)); GetLocaleInfoW(GetSystemDefaultLCID(), LOCALE_SLANGUAGE, langSel, sizeof(langSel)/sizeof(WCHAR));
SendMessage(hLangList, CB_SELECTSTRING, -1, (LPARAM)langSel); SendMessageW(hLangList, CB_SELECTSTRING, -1, (LPARAM)langSel);
} }
static VOID static VOID
@ -224,26 +224,26 @@ GetCurrentDPI(LPTSTR szDPI)
DWORD dwType, dwSize, dwDPI, dwDefDPI = 0x00000060; // Default 96 DPI DWORD dwType, dwSize, dwDPI, dwDefDPI = 0x00000060; // Default 96 DPI
HKEY hKey; HKEY hKey;
if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\FontDPI"), 0, NULL, if (RegCreateKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\FontDPI", 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL) != ERROR_SUCCESS) REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL) != ERROR_SUCCESS)
{ {
_tcscpy(szDPI, _T("96")); wcscpy(szDPI, L"96");
return; return;
} }
dwType = REG_DWORD; dwType = REG_DWORD;
dwSize = sizeof(DWORD); dwSize = sizeof(DWORD);
if (RegQueryValueEx(hKey, _T("LogPixels"), NULL, &dwType, (LPBYTE)&dwDPI, &dwSize) != ERROR_SUCCESS) if (RegQueryValueExW(hKey, L"LogPixels", NULL, &dwType, (LPBYTE)&dwDPI, &dwSize) != ERROR_SUCCESS)
{ {
if (RegSetValueEx(hKey, _T("LogPixels"), 0, REG_DWORD, (LPBYTE)&dwDefDPI, sizeof(DWORD)) == ERROR_SUCCESS) if (RegSetValueExW(hKey, L"LogPixels", 0, REG_DWORD, (LPBYTE)&dwDefDPI, sizeof(DWORD)) == ERROR_SUCCESS)
{ {
_tcscpy(szDPI, _T("96")); wcscpy(szDPI, L"96");
RegCloseKey(hKey); RegCloseKey(hKey);
return; return;
} }
} }
else wsprintf(szDPI, _T("%d"), dwDPI); else wsprintf(szDPI, L"%d", dwDPI);
RegCloseKey(hKey); RegCloseKey(hKey);
} }
@ -251,16 +251,16 @@ GetCurrentDPI(LPTSTR szDPI)
VOID VOID
SetNonUnicodeLang(HWND hwnd, LCID lcid) SetNonUnicodeLang(HWND hwnd, LCID lcid)
{ {
TCHAR szDefCP[5 + 1], szSection[MAX_PATH], szDPI[3 + 1]; WCHAR szDefCP[5 + 1], szSection[MAX_PATH], szDPI[3 + 1];
HINF hFontInf; HINF hFontInf;
UINT Count; UINT Count;
GetLocaleInfo(MAKELCID(lcid, SORT_DEFAULT), LOCALE_IDEFAULTCODEPAGE, szDefCP, sizeof(szDefCP) / sizeof(TCHAR)); GetLocaleInfoW(MAKELCID(lcid, SORT_DEFAULT), LOCALE_IDEFAULTCODEPAGE, szDefCP, sizeof(szDefCP) / sizeof(WCHAR));
GetCurrentDPI(szDPI); GetCurrentDPI(szDPI);
wsprintf(szSection, _T("Font.CP%s.%s"), szDefCP, szDPI); wsprintf(szSection, L"Font.CP%s.%s", szDefCP, szDPI);
hFontInf = SetupOpenInfFile(_T("font.inf"), NULL, INF_STYLE_WIN4, NULL); hFontInf = SetupOpenInfFileW(L"font.inf", NULL, INF_STYLE_WIN4, NULL);
if (hFontInf == INVALID_HANDLE_VALUE) if (hFontInf == INVALID_HANDLE_VALUE)
return; return;
@ -274,9 +274,9 @@ SetNonUnicodeLang(HWND hwnd, LCID lcid)
Count = (UINT) SetupGetLineCount(hFontInf, szSection); Count = (UINT) SetupGetLineCount(hFontInf, szSection);
if (Count <= 0) return; if (Count <= 0) return;
if (!SetupInstallFromInfSection(hwnd, hFontInf, szSection, SPINST_REGISTRY & ~SPINST_FILES, if (!SetupInstallFromInfSectionW(hwnd, hFontInf, szSection, SPINST_REGISTRY & ~SPINST_FILES,
NULL, NULL, 0, NULL, NULL, NULL, NULL)) NULL, NULL, 0, NULL, NULL, NULL, NULL))
MessageBox(hwnd, _T("Unable to install a new language for programs don't support unicode!"), MessageBoxW(hwnd, L"Unable to install a new language for programs don't support unicode!",
NULL, MB_ICONERROR | MB_OK); NULL, MB_ICONERROR | MB_OK);
SetupCloseInfFile(hFontInf); SetupCloseInfFile(hFontInf);
@ -288,21 +288,21 @@ VOID
SaveSystemSettings( SaveSystemSettings(
LCID lcid) LCID lcid)
{ {
TCHAR ACPPage[9]; WCHAR ACPPage[9];
TCHAR OEMPage[9]; WCHAR OEMPage[9];
HKEY langKey; HKEY langKey;
DWORD ret; DWORD ret;
WCHAR value[5]; WCHAR value[5];
DWORD valuesize; DWORD valuesize;
ret = GetLocaleInfo(MAKELCID(lcid, SORT_DEFAULT), LOCALE_IDEFAULTCODEPAGE, OEMPage, sizeof(OEMPage)/sizeof(TCHAR)); ret = GetLocaleInfoW(MAKELCID(lcid, SORT_DEFAULT), LOCALE_IDEFAULTCODEPAGE, OEMPage, sizeof(OEMPage)/sizeof(WCHAR));
if (ret == 0) if (ret == 0)
{ {
PrintErrorMsgBox(IDS_ERROR_OEM_CODE_PAGE); PrintErrorMsgBox(IDS_ERROR_OEM_CODE_PAGE);
return; return;
} }
ret = GetLocaleInfo(MAKELCID(lcid, SORT_DEFAULT), LOCALE_IDEFAULTANSICODEPAGE, ACPPage, sizeof(ACPPage)/sizeof(TCHAR)); ret = GetLocaleInfoW(MAKELCID(lcid, SORT_DEFAULT), LOCALE_IDEFAULTANSICODEPAGE, ACPPage, sizeof(ACPPage)/sizeof(WCHAR));
if (ret == 0) if (ret == 0)
{ {
PrintErrorMsgBox(IDS_ERROR_ANSI_CODE_PAGE); PrintErrorMsgBox(IDS_ERROR_ANSI_CODE_PAGE);
@ -310,31 +310,31 @@ SaveSystemSettings(
} }
/* Set codepages */ /* Set codepages */
ret = RegOpenKey(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\Control\\NLS\\CodePage"), &langKey); ret = RegOpenKeyW(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Control\\NLS\\CodePage", &langKey);
if (ret != ERROR_SUCCESS) if (ret != ERROR_SUCCESS)
{ {
PrintErrorMsgBox(IDS_ERROR_NLS_CODE_REG); PrintErrorMsgBox(IDS_ERROR_NLS_CODE_REG);
return; return;
} }
RegSetValueEx(langKey, _T("OEMCP"), 0, REG_SZ, (BYTE *)OEMPage, (_tcslen(OEMPage) +1 ) * sizeof(TCHAR)); RegSetValueExW(langKey, L"OEMCP", 0, REG_SZ, (BYTE *)OEMPage, (wcslen(OEMPage) +1 ) * sizeof(WCHAR));
RegSetValueEx(langKey, _T("ACP"), 0, REG_SZ, (BYTE *)ACPPage, (_tcslen(ACPPage) +1 ) * sizeof(TCHAR)); RegSetValueExW(langKey, L"ACP", 0, REG_SZ, (BYTE *)ACPPage, (wcslen(ACPPage) +1 ) * sizeof(WCHAR));
RegCloseKey(langKey); RegCloseKey(langKey);
wsprintf(value, _T("%04hX"), LANGIDFROMLCID(lcid)); wsprintf(value, L"%04hX", LANGIDFROMLCID(lcid));
valuesize = (_tcslen(value) + 1) * sizeof(TCHAR); valuesize = (wcslen(value) + 1) * sizeof(WCHAR);
/* Set language */ /* Set language */
ret = RegOpenKey(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\Control\\NLS\\Language"), &langKey); ret = RegOpenKeyW(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Control\\NLS\\Language", &langKey);
if (ret != ERROR_SUCCESS) if (ret != ERROR_SUCCESS)
{ {
PrintErrorMsgBox(IDS_ERROR_NLS_KEY_REG); PrintErrorMsgBox(IDS_ERROR_NLS_KEY_REG);
return; return;
} }
RegSetValueEx(langKey, _T("Default"), 0, REG_SZ, (BYTE *)value, valuesize); RegSetValueExW(langKey, L"Default", 0, REG_SZ, (BYTE *)value, valuesize);
RegCloseKey(langKey); RegCloseKey(langKey);
} }

View file

@ -25,89 +25,89 @@
#include "intl.h" #include "intl.h"
#define POSITIVE_EXAMPLE _T("123456789.00") #define POSITIVE_EXAMPLE L"123456789.00"
#define NEGATIVE_EXAMPLE _T("-123456789.00") #define NEGATIVE_EXAMPLE L"-123456789.00"
#define MAX_FIELD_DIG_SAMPLES 3 #define MAX_FIELD_DIG_SAMPLES 3
static VOID static VOID
UpdateExamples(HWND hwndDlg, PGLOBALDATA pGlobalData) UpdateExamples(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szBuffer[MAX_FMT_SIZE]; WCHAR szBuffer[MAX_FMT_SIZE];
/* Positive example */ /* Positive example */
GetCurrencyFormat(pGlobalData->lcid, 0, GetCurrencyFormatW(pGlobalData->lcid, 0,
POSITIVE_EXAMPLE, POSITIVE_EXAMPLE,
NULL, szBuffer, MAX_FMT_SIZE); NULL, szBuffer, MAX_FMT_SIZE);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSSAMPLE), WM_SETTEXT, 0, (LPARAM)szBuffer); SendDlgItemMessageW(hwndDlg, IDC_CURRENCYPOSSAMPLE, WM_SETTEXT, 0, (LPARAM)szBuffer);
/* Negative example */ /* Negative example */
GetCurrencyFormat(pGlobalData->lcid, 0, GetCurrencyFormatW(pGlobalData->lcid, 0,
NEGATIVE_EXAMPLE, NEGATIVE_EXAMPLE,
NULL, szBuffer, MAX_FMT_SIZE); NULL, szBuffer, MAX_FMT_SIZE);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGSAMPLE), WM_SETTEXT, 0, (LPARAM)szBuffer); SendDlgItemMessageW(hwndDlg, IDC_CURRENCYNEGSAMPLE, WM_SETTEXT, 0, (LPARAM)szBuffer);
} }
static VOID static VOID
InitCurrencySymbols(HWND hwndDlg, PGLOBALDATA pGlobalData) InitCurrencySymbols(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szBuffer[MAX_FMT_SIZE]; WCHAR szBuffer[MAX_FMT_SIZE];
/* Limit text length */ /* Limit text length */
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYSYMBOL,
CB_LIMITTEXT, CB_LIMITTEXT,
MAX_CURRENCYSYMBOL, MAX_CURRENCYSYMBOL,
0); 0);
/* Set currency symbols */ /* Set currency symbols */
GetLocaleInfo(pGlobalData->lcid, GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SCURRENCY, LOCALE_SCURRENCY,
szBuffer, MAX_FMT_SIZE); szBuffer, MAX_FMT_SIZE);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYSYMBOL,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)szBuffer); (LPARAM)szBuffer);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYSYMBOL,
CB_SETCURSEL, CB_SETCURSEL,
0, /* Index */ 0, /* Index */
0); 0);
} }
static VOID static VOID
InitCurrencyPositiveFormats(HWND hwndDlg, PGLOBALDATA pGlobalData) InitCurrencyPositiveFormats(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szDecimalSep[MAX_FMT_SIZE]; WCHAR szDecimalSep[MAX_FMT_SIZE];
TCHAR szThousandSep[MAX_FMT_SIZE]; WCHAR szThousandSep[MAX_FMT_SIZE];
TCHAR szCurrencySymbol[MAX_FMT_SIZE]; WCHAR szCurrencySymbol[MAX_FMT_SIZE];
TCHAR szBuffer[MAX_FMT_SIZE]; WCHAR szBuffer[MAX_FMT_SIZE];
CURRENCYFMT cyFmt; CURRENCYFMTW cyFmt;
INT nPositiveOrder = 0; INT nPositiveOrder = 0;
INT ret; INT ret;
INT i; INT i;
/* Get positive format */ /* Get positive format */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_ICURRENCY, LOCALE_ICURRENCY,
szBuffer, MAX_FMT_SIZE); szBuffer, MAX_FMT_SIZE);
if (ret != 0) if (ret != 0)
{ {
nPositiveOrder = _ttoi(szBuffer); nPositiveOrder = _wtoi(szBuffer);
} }
/* Get number of fractional digits */ /* Get number of fractional digits */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_ICURRDIGITS, LOCALE_ICURRDIGITS,
szBuffer, MAX_FMT_SIZE); szBuffer, MAX_FMT_SIZE);
if (ret != 0) if (ret != 0)
{ {
cyFmt.NumDigits = _ttoi(szBuffer); cyFmt.NumDigits = _wtoi(szBuffer);
} }
else else
{ {
@ -115,19 +115,19 @@ InitCurrencyPositiveFormats(HWND hwndDlg, PGLOBALDATA pGlobalData)
} }
/* Get decimal separator */ /* Get decimal separator */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SMONDECIMALSEP, LOCALE_SMONDECIMALSEP,
szDecimalSep, MAX_FMT_SIZE); szDecimalSep, MAX_FMT_SIZE);
/* Get group separator */ /* Get group separator */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SMONTHOUSANDSEP, LOCALE_SMONTHOUSANDSEP,
szThousandSep, MAX_FMT_SIZE); szThousandSep, MAX_FMT_SIZE);
/* Get currency symbol */ /* Get currency symbol */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SCURRENCY, LOCALE_SCURRENCY,
szCurrencySymbol, MAX_FMT_SIZE); szCurrencySymbol, MAX_FMT_SIZE);
/* positive currency values */ /* positive currency values */
cyFmt.LeadingZero = 0; cyFmt.LeadingZero = 0;
@ -140,51 +140,51 @@ InitCurrencyPositiveFormats(HWND hwndDlg, PGLOBALDATA pGlobalData)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
cyFmt.PositiveOrder = i; cyFmt.PositiveOrder = i;
GetCurrencyFormat(pGlobalData->lcid, 0, GetCurrencyFormatW(pGlobalData->lcid, 0,
_T("1.1"), L"1.1",
&cyFmt, szBuffer, MAX_FMT_SIZE); &cyFmt, szBuffer, MAX_FMT_SIZE);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSVALUE), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYPOSVALUE,
CB_INSERTSTRING, CB_INSERTSTRING,
-1, -1,
(LPARAM)szBuffer); (LPARAM)szBuffer);
} }
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSVALUE), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYPOSVALUE,
CB_SETCURSEL, CB_SETCURSEL,
nPositiveOrder, nPositiveOrder,
0); 0);
} }
static VOID static VOID
InitCurrencyNegativeFormats(HWND hwndDlg, PGLOBALDATA pGlobalData) InitCurrencyNegativeFormats(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szDecimalSep[MAX_FMT_SIZE]; WCHAR szDecimalSep[MAX_FMT_SIZE];
TCHAR szThousandSep[MAX_FMT_SIZE]; WCHAR szThousandSep[MAX_FMT_SIZE];
TCHAR szCurrencySymbol[MAX_FMT_SIZE]; WCHAR szCurrencySymbol[MAX_FMT_SIZE];
TCHAR szBuffer[MAX_FMT_SIZE]; WCHAR szBuffer[MAX_FMT_SIZE];
CURRENCYFMT cyFmt; CURRENCYFMTW cyFmt;
INT nNegativeOrder = 0; INT nNegativeOrder = 0;
INT ret; INT ret;
int i; int i;
/* Get negative format */ /* Get negative format */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_INEGCURR, LOCALE_INEGCURR,
szBuffer, MAX_FMT_SIZE); szBuffer, MAX_FMT_SIZE);
if (ret != 0) if (ret != 0)
{ {
nNegativeOrder = _ttoi(szBuffer); nNegativeOrder = _wtoi(szBuffer);
} }
/* Get number of fractional digits */ /* Get number of fractional digits */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_ICURRDIGITS, LOCALE_ICURRDIGITS,
szBuffer, MAX_FMT_SIZE); szBuffer, MAX_FMT_SIZE);
if (ret != 0) if (ret != 0)
{ {
cyFmt.NumDigits = _ttoi(szBuffer); cyFmt.NumDigits = _wtoi(szBuffer);
} }
else else
{ {
@ -192,19 +192,19 @@ InitCurrencyNegativeFormats(HWND hwndDlg, PGLOBALDATA pGlobalData)
} }
/* Get decimal separator */ /* Get decimal separator */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SMONDECIMALSEP, LOCALE_SMONDECIMALSEP,
szDecimalSep, MAX_FMT_SIZE); szDecimalSep, MAX_FMT_SIZE);
/* Get group separator */ /* Get group separator */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SMONTHOUSANDSEP, LOCALE_SMONTHOUSANDSEP,
szThousandSep, MAX_FMT_SIZE); szThousandSep, MAX_FMT_SIZE);
/* Get currency symbol */ /* Get currency symbol */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SCURRENCY, LOCALE_SCURRENCY,
szCurrencySymbol, MAX_FMT_SIZE); szCurrencySymbol, MAX_FMT_SIZE);
/* negative currency values */ /* negative currency values */
cyFmt.LeadingZero = 0; cyFmt.LeadingZero = 0;
@ -217,49 +217,49 @@ InitCurrencyNegativeFormats(HWND hwndDlg, PGLOBALDATA pGlobalData)
for (i = 0; i < 16; i++) for (i = 0; i < 16; i++)
{ {
cyFmt.NegativeOrder = i; cyFmt.NegativeOrder = i;
GetCurrencyFormat(pGlobalData->lcid, 0, GetCurrencyFormatW(pGlobalData->lcid, 0,
_T("-1.1"), L"-1.1",
&cyFmt, szBuffer, MAX_FMT_SIZE); &cyFmt, szBuffer, MAX_FMT_SIZE);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGVALUE), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYNEGVALUE,
CB_INSERTSTRING, CB_INSERTSTRING,
-1, -1,
(LPARAM)szBuffer); (LPARAM)szBuffer);
} }
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGVALUE), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYNEGVALUE,
CB_SETCURSEL, CB_SETCURSEL,
nNegativeOrder, nNegativeOrder,
0); 0);
} }
static VOID static VOID
InitCurrencyDecimalSeparators(HWND hwndDlg, PGLOBALDATA pGlobalData) InitCurrencyDecimalSeparators(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szBuffer[MAX_FMT_SIZE]; WCHAR szBuffer[MAX_FMT_SIZE];
/* Limit text length */ /* Limit text length */
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYDECSEP,
CB_LIMITTEXT, CB_LIMITTEXT,
MAX_CURRENCYDECSEP, MAX_CURRENCYDECSEP,
0); 0);
/* Get decimal separator */ /* Get decimal separator */
GetLocaleInfo(pGlobalData->lcid, GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SMONDECIMALSEP, LOCALE_SMONDECIMALSEP,
szBuffer, MAX_FMT_SIZE); szBuffer, MAX_FMT_SIZE);
/* Decimal separator */ /* Decimal separator */
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYDECSEP,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)szBuffer); (LPARAM)szBuffer);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYDECSEP,
CB_SETCURSEL, CB_SETCURSEL,
0, /* Index */ 0, /* Index */
0); 0);
} }
@ -267,38 +267,38 @@ InitCurrencyDecimalSeparators(HWND hwndDlg, PGLOBALDATA pGlobalData)
static VOID static VOID
InitCurrencyNumFracDigits(HWND hwndDlg, PGLOBALDATA pGlobalData) InitCurrencyNumFracDigits(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szBuffer[MAX_FMT_SIZE]; WCHAR szBuffer[MAX_FMT_SIZE];
int ret; int ret;
int i; int i;
/* Create standard list of fractional symbols */ /* Create standard list of fractional symbols */
for (i = 0; i < 10; i++) for (i = 0; i < 10; i++)
{ {
szBuffer[0] = _T('0') + i; szBuffer[0] = L'0' + i;
szBuffer[1] = 0; szBuffer[1] = 0;
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYDECNUM,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)szBuffer); (LPARAM)szBuffer);
} }
/* Get number of fractional digits */ /* Get number of fractional digits */
ret = GetLocaleInfo(pGlobalData->lcid, ret = GetLocaleInfoW(pGlobalData->lcid,
LOCALE_ICURRDIGITS, LOCALE_ICURRDIGITS,
szBuffer, MAX_FMT_SIZE); szBuffer, MAX_FMT_SIZE);
if (ret != 0) if (ret != 0)
{ {
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYDECNUM,
CB_SETCURSEL, CB_SETCURSEL,
_ttoi(szBuffer), _wtoi(szBuffer),
0); 0);
} }
else else
{ {
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYDECNUM,
CB_SETCURSEL, CB_SETCURSEL,
0, 0,
0); 0);
} }
} }
@ -307,247 +307,247 @@ InitCurrencyNumFracDigits(HWND hwndDlg, PGLOBALDATA pGlobalData)
static VOID static VOID
InitCurrencyGroupSeparators(HWND hwndDlg, PGLOBALDATA pGlobalData) InitCurrencyGroupSeparators(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szBuffer[MAX_FMT_SIZE]; WCHAR szBuffer[MAX_FMT_SIZE];
/* Limit text length */ /* Limit text length */
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYGRPSEP,
CB_LIMITTEXT, CB_LIMITTEXT,
MAX_CURRENCYGRPSEP, MAX_CURRENCYGRPSEP,
0); 0);
/* Get group separator */ /* Get group separator */
GetLocaleInfo(pGlobalData->lcid, GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SMONTHOUSANDSEP, LOCALE_SMONTHOUSANDSEP,
szBuffer, MAX_FMT_SIZE); szBuffer, MAX_FMT_SIZE);
/* Digit group separator */ /* Digit group separator */
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYGRPSEP,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)szBuffer); (LPARAM)szBuffer);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYGRPSEP,
CB_SETCURSEL, CB_SETCURSEL,
0, /* Index */ 0, /* Index */
0); 0);
} }
static VOID static VOID
InitDigitGroupCB(HWND hwndDlg, PGLOBALDATA pGlobalData) InitDigitGroupCB(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szThousandSep[MAX_FMT_SIZE]; WCHAR szThousandSep[MAX_FMT_SIZE];
TCHAR szGrouping[MAX_FMT_SIZE]; WCHAR szGrouping[MAX_FMT_SIZE];
TCHAR szBuffer[MAX_FMT_SIZE]; WCHAR szBuffer[MAX_FMT_SIZE];
CURRENCYFMT cyFmt; CURRENCYFMTW cyFmt;
INT i; INT i;
/* Get group separator */ /* Get group separator */
GetLocaleInfo(pGlobalData->lcid, GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SMONTHOUSANDSEP, LOCALE_SMONTHOUSANDSEP,
szThousandSep, MAX_FMT_SIZE); szThousandSep, MAX_FMT_SIZE);
/* Get grouping */ /* Get grouping */
GetLocaleInfo(pGlobalData->lcid, GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SMONGROUPING, LOCALE_SMONGROUPING,
szGrouping, MAX_FMT_SIZE); szGrouping, MAX_FMT_SIZE);
/* Digit grouping */ /* Digit grouping */
cyFmt.NumDigits = 0; cyFmt.NumDigits = 0;
cyFmt.LeadingZero = 0; cyFmt.LeadingZero = 0;
cyFmt.lpDecimalSep = _T(""); cyFmt.lpDecimalSep = L"";
cyFmt.lpThousandSep = szThousandSep; cyFmt.lpThousandSep = szThousandSep;
cyFmt.PositiveOrder = 0; cyFmt.PositiveOrder = 0;
cyFmt.NegativeOrder = 0; cyFmt.NegativeOrder = 0;
cyFmt.lpCurrencySymbol = _T(""); cyFmt.lpCurrencySymbol = L"";
cyFmt.Grouping = 0; cyFmt.Grouping = 0;
GetCurrencyFormat(pGlobalData->lcid, 0, GetCurrencyFormatW(pGlobalData->lcid, 0,
_T("123456789"), L"123456789",
&cyFmt, szBuffer, MAX_FMT_SIZE); &cyFmt, szBuffer, MAX_FMT_SIZE);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYGRPNUM,
CB_INSERTSTRING, CB_INSERTSTRING,
-1, -1,
(LPARAM)szBuffer); (LPARAM)szBuffer);
cyFmt.Grouping = 3; cyFmt.Grouping = 3;
GetCurrencyFormat(pGlobalData->lcid, 0, GetCurrencyFormatW(pGlobalData->lcid, 0,
_T("123456789"), L"123456789",
&cyFmt, szBuffer, MAX_FMT_SIZE); &cyFmt, szBuffer, MAX_FMT_SIZE);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYGRPNUM,
CB_INSERTSTRING, CB_INSERTSTRING,
-1, -1,
(LPARAM)szBuffer); (LPARAM)szBuffer);
cyFmt.Grouping = 32; cyFmt.Grouping = 32;
GetCurrencyFormat(pGlobalData->lcid, 0, GetCurrencyFormatW(pGlobalData->lcid, 0,
_T("123456789"), L"123456789",
&cyFmt, szBuffer, MAX_FMT_SIZE); &cyFmt, szBuffer, MAX_FMT_SIZE);
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYGRPNUM,
CB_INSERTSTRING, CB_INSERTSTRING,
-1, -1,
(LPARAM)szBuffer); (LPARAM)szBuffer);
i = 0; i = 0;
if (szGrouping[0] == _T('3')) if (szGrouping[0] == L'3')
{ {
if ((szGrouping[1] == _T(';')) && if ((szGrouping[1] == L';') &&
(szGrouping[2] == _T('2'))) (szGrouping[2] == L'2'))
i = 2; i = 2;
else else
i = 1; i = 1;
} }
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYGRPNUM,
CB_SETCURSEL, CB_SETCURSEL,
i, /* Index */ i, /* Index */
0); 0);
} }
/* Set number of digits in field */ /* Set number of digits in field */
static BOOL static BOOL
SetCurrencyDigNum(HWND hwndDlg, LCID lcid) SetCurrencyDigNum(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
LPTSTR szFieldDigNumSamples[MAX_FIELD_DIG_SAMPLES]= PWSTR szFieldDigNumSamples[MAX_FIELD_DIG_SAMPLES]=
{ {
_T("0;0"), L"0;0",
_T("3;0"), L"3;0",
_T("3;2;0") L"3;2;0"
}; };
int nCurrSel; int nCurrSel;
/* Get setted number of digits in field */ /* Get setted number of digits in field */
nCurrSel = SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM), nCurrSel = SendDlgItemMessageW(hwndDlg, IDC_CURRENCYGRPNUM,
CB_GETCURSEL, CB_GETCURSEL,
(WPARAM)0, (WPARAM)0,
(LPARAM)0); (LPARAM)0);
/* Save number of digits in field */ /* Save number of digits in field */
if (nCurrSel != CB_ERR) if (nCurrSel != CB_ERR)
SetLocaleInfo(lcid, LOCALE_SMONGROUPING, szFieldDigNumSamples[nCurrSel]); SetLocaleInfoW(pGlobalData->lcid, LOCALE_SMONGROUPING, szFieldDigNumSamples[nCurrSel]);
return TRUE; return TRUE;
} }
/* Set currency field separator */ /* Set currency field separator */
static BOOL static BOOL
SetCurrencyFieldSep(HWND hwndDlg, LCID lcid) SetCurrencyFieldSep(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szCurrencyFieldSep[MAX_SAMPLES_STR_SIZE]; WCHAR szCurrencyFieldSep[MAX_SAMPLES_STR_SIZE];
/* Get setted currency field separator */ /* Get setted currency field separator */
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYGRPSEP,
WM_GETTEXT, WM_GETTEXT,
(WPARAM)MAX_SAMPLES_STR_SIZE, (WPARAM)MAX_SAMPLES_STR_SIZE,
(LPARAM)szCurrencyFieldSep); (LPARAM)szCurrencyFieldSep);
/* Save currency field separator */ /* Save currency field separator */
SetLocaleInfo(lcid, LOCALE_SMONTHOUSANDSEP, szCurrencyFieldSep); SetLocaleInfoW(pGlobalData->lcid, LOCALE_SMONTHOUSANDSEP, szCurrencyFieldSep);
return TRUE; return TRUE;
} }
/* Set number of fractional symbols */ /* Set number of fractional symbols */
static BOOL static BOOL
SetCurrencyFracSymNum(HWND hwndDlg, LCID lcid) SetCurrencyFracSymNum(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szCurrencyFracSymNum[MAX_SAMPLES_STR_SIZE]; WCHAR szCurrencyFracSymNum[MAX_SAMPLES_STR_SIZE];
INT nCurrSel; INT nCurrSel;
/* Get setted number of fractional symbols */ /* Get setted number of fractional symbols */
nCurrSel = SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM), nCurrSel = SendDlgItemMessageW(hwndDlg, IDC_CURRENCYDECNUM,
CB_GETCURSEL, CB_GETCURSEL,
(WPARAM)0, (WPARAM)0,
(LPARAM)0); (LPARAM)0);
/* Convert to wide char */ /* Convert to wide char */
_itot(nCurrSel, szCurrencyFracSymNum, DECIMAL_RADIX); _itow(nCurrSel, szCurrencyFracSymNum, DECIMAL_RADIX);
/* Save number of fractional symbols */ /* Save number of fractional symbols */
SetLocaleInfo(lcid, LOCALE_ICURRDIGITS, szCurrencyFracSymNum); SetLocaleInfoW(pGlobalData->lcid, LOCALE_ICURRDIGITS, szCurrencyFracSymNum);
return TRUE; return TRUE;
} }
/* Set currency separator */ /* Set currency separator */
static BOOL static BOOL
SetCurrencySep(HWND hwndDlg, LCID lcid) SetCurrencySep(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szCurrencySep[MAX_SAMPLES_STR_SIZE]; WCHAR szCurrencySep[MAX_SAMPLES_STR_SIZE];
/* Get setted currency decimal separator */ /* Get setted currency decimal separator */
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYDECSEP,
WM_GETTEXT, WM_GETTEXT,
(WPARAM)MAX_SAMPLES_STR_SIZE, (WPARAM)MAX_SAMPLES_STR_SIZE,
(LPARAM)szCurrencySep); (LPARAM)szCurrencySep);
/* TODO: Add check for correctly input */ /* TODO: Add check for correctly input */
/* Save currency separator */ /* Save currency separator */
SetLocaleInfo(lcid, LOCALE_SMONDECIMALSEP, szCurrencySep); SetLocaleInfoW(pGlobalData->lcid, LOCALE_SMONDECIMALSEP, szCurrencySep);
return TRUE; return TRUE;
} }
/* Set negative currency sum format */ /* Set negative currency sum format */
static BOOL static BOOL
SetNegCurrencySumFmt(HWND hwndDlg, LCID lcid) SetNegCurrencySumFmt(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szNegCurrencySumFmt[MAX_SAMPLES_STR_SIZE]; WCHAR szNegCurrencySumFmt[MAX_SAMPLES_STR_SIZE];
INT nCurrSel; INT nCurrSel;
/* Get setted currency unit */ /* Get setted currency unit */
nCurrSel = SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGVALUE), nCurrSel = SendDlgItemMessageW(hwndDlg, IDC_CURRENCYNEGVALUE,
CB_GETCURSEL, CB_GETCURSEL,
(WPARAM)0, (WPARAM)0,
(LPARAM)0); (LPARAM)0);
/* Convert to wide char */ /* Convert to wide char */
_itot(nCurrSel, szNegCurrencySumFmt, DECIMAL_RADIX); _itow(nCurrSel, szNegCurrencySumFmt, DECIMAL_RADIX);
/* Save currency sum format */ /* Save currency sum format */
SetLocaleInfo(lcid, LOCALE_INEGCURR, szNegCurrencySumFmt); SetLocaleInfoW(pGlobalData->lcid, LOCALE_INEGCURR, szNegCurrencySumFmt);
return TRUE; return TRUE;
} }
/* Set positive currency sum format */ /* Set positive currency sum format */
static BOOL static BOOL
SetPosCurrencySumFmt(HWND hwndDlg, LCID lcid) SetPosCurrencySumFmt(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szPosCurrencySumFmt[MAX_SAMPLES_STR_SIZE]; WCHAR szPosCurrencySumFmt[MAX_SAMPLES_STR_SIZE];
INT nCurrSel; INT nCurrSel;
/* Get setted currency unit */ /* Get setted currency unit */
nCurrSel = SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSVALUE), nCurrSel = SendDlgItemMessageW(hwndDlg, IDC_CURRENCYPOSVALUE,
CB_GETCURSEL, CB_GETCURSEL,
(WPARAM)0, (WPARAM)0,
(LPARAM)0); (LPARAM)0);
/* Convert to wide char */ /* Convert to wide char */
_itot(nCurrSel, szPosCurrencySumFmt, DECIMAL_RADIX); _itow(nCurrSel, szPosCurrencySumFmt, DECIMAL_RADIX);
/* Save currency sum format */ /* Save currency sum format */
SetLocaleInfo(lcid, LOCALE_ICURRENCY, szPosCurrencySumFmt); SetLocaleInfoW(pGlobalData->lcid, LOCALE_ICURRENCY, szPosCurrencySumFmt);
return TRUE; return TRUE;
} }
/* Set currency unit */ /* Set currency unit */
static BOOL static BOOL
SetCurrencyUnit(HWND hwndDlg, LCID lcid) SetCurrencyUnit(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szCurrencyUnit[MAX_SAMPLES_STR_SIZE]; WCHAR szCurrencyUnit[MAX_SAMPLES_STR_SIZE];
/* Get setted currency unit */ /* Get setted currency unit */
SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_CURRENCYSYMBOL,
WM_GETTEXT, WM_GETTEXT,
(WPARAM)MAX_SAMPLES_STR_SIZE, (WPARAM)MAX_SAMPLES_STR_SIZE,
(LPARAM)(LPCSTR)szCurrencyUnit); (LPARAM)(PCWSTR)szCurrencyUnit);
/* Save currency unit */ /* Save currency unit */
SetLocaleInfo(lcid, LOCALE_SCURRENCY, szCurrencyUnit); SetLocaleInfoW(pGlobalData->lcid, LOCALE_SCURRENCY, szCurrencyUnit);
return TRUE; return TRUE;
} }
@ -603,25 +603,25 @@ CurrencyPageProc(HWND hwndDlg,
/* If push apply button */ /* If push apply button */
if (lpnm->code == (UINT)PSN_APPLY) if (lpnm->code == (UINT)PSN_APPLY)
{ {
if (!SetCurrencyDigNum(hwndDlg, pGlobalData->lcid)) if (!SetCurrencyDigNum(hwndDlg, pGlobalData))
break; break;
if (!SetCurrencyUnit(hwndDlg, pGlobalData->lcid)) if (!SetCurrencyUnit(hwndDlg, pGlobalData))
break; break;
if (!SetPosCurrencySumFmt(hwndDlg, pGlobalData->lcid)) if (!SetPosCurrencySumFmt(hwndDlg, pGlobalData))
break; break;
if (!SetNegCurrencySumFmt(hwndDlg, pGlobalData->lcid)) if (!SetNegCurrencySumFmt(hwndDlg, pGlobalData))
break; break;
if (!SetCurrencySep(hwndDlg, pGlobalData->lcid)) if (!SetCurrencySep(hwndDlg, pGlobalData))
break; break;
if (!SetCurrencyFracSymNum(hwndDlg, pGlobalData->lcid)) if (!SetCurrencyFracSymNum(hwndDlg, pGlobalData))
break; break;
if (!SetCurrencyFieldSep(hwndDlg, pGlobalData->lcid)) if (!SetCurrencyFieldSep(hwndDlg, pGlobalData))
break; break;
UpdateExamples(hwndDlg, pGlobalData); UpdateExamples(hwndDlg, pGlobalData);

View file

@ -29,7 +29,7 @@
#define YEAR_STR_MAX_SIZE 5 #define YEAR_STR_MAX_SIZE 5
#define MAX_SHRT_DATE_SEPARATORS 3 #define MAX_SHRT_DATE_SEPARATORS 3
#define STD_DATE_SEP _T(".") #define STD_DATE_SEP L"."
#define YEAR_DIFF (99) #define YEAR_DIFF (99)
#define MAX_YEAR (9999) #define MAX_YEAR (9999)
@ -39,9 +39,9 @@ static HWND hwndEnum = NULL;
/* If char is 'y' or 'M' or 'd' return TRUE, else FALSE */ /* If char is 'y' or 'M' or 'd' return TRUE, else FALSE */
BOOL BOOL
isDateCompAl(TCHAR alpha) isDateCompAl(WCHAR alpha)
{ {
if ((alpha == _T('y')) || (alpha == _T('M')) || (alpha == _T('d')) || (alpha == _T(' '))) if ((alpha == L'y') || (alpha == L'M') || (alpha == L'd') || (alpha == L' '))
return TRUE; return TRUE;
else else
return FALSE; return FALSE;
@ -49,30 +49,30 @@ isDateCompAl(TCHAR alpha)
/* Find first date separator in string */ /* Find first date separator in string */
LPTSTR LPTSTR
FindDateSep(const TCHAR *szSourceStr) FindDateSep(const WCHAR *szSourceStr)
{ {
LPTSTR pszFoundSep; PWSTR pszFoundSep;
UINT nDateCompCount=0; UINT nDateCompCount=0;
UINT nDateSepCount=0; UINT nDateSepCount=0;
pszFoundSep = (LPTSTR)malloc(MAX_SAMPLES_STR_SIZE * sizeof(TCHAR)); pszFoundSep = (LPWSTR)malloc(MAX_SAMPLES_STR_SIZE * sizeof(WCHAR));
if(!pszFoundSep) if(!pszFoundSep)
return NULL; return NULL;
_tcscpy(pszFoundSep,STD_DATE_SEP); wcscpy(pszFoundSep,STD_DATE_SEP);
while (nDateCompCount < _tcslen(szSourceStr)) while (nDateCompCount < wcslen(szSourceStr))
{ {
if (!isDateCompAl(szSourceStr[nDateCompCount]) && (szSourceStr[nDateCompCount] != _T('\''))) if (!isDateCompAl(szSourceStr[nDateCompCount]) && (szSourceStr[nDateCompCount] != L'\''))
{ {
while (!isDateCompAl(szSourceStr[nDateCompCount]) && (szSourceStr[nDateCompCount] != _T('\''))) while (!isDateCompAl(szSourceStr[nDateCompCount]) && (szSourceStr[nDateCompCount] != L'\''))
{ {
pszFoundSep[nDateSepCount++] = szSourceStr[nDateCompCount]; pszFoundSep[nDateSepCount++] = szSourceStr[nDateCompCount];
nDateCompCount++; nDateCompCount++;
} }
pszFoundSep[nDateSepCount] = _T('\0'); pszFoundSep[nDateSepCount] = L'\0';
return pszFoundSep; return pszFoundSep;
} }
@ -87,25 +87,25 @@ FindDateSep(const TCHAR *szSourceStr)
/* Setted up short date separator to registry */ /* Setted up short date separator to registry */
static BOOL static BOOL
SetShortDateSep(HWND hwndDlg, LCID lcid) SetShortDateSep(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szShortDateSep[MAX_SAMPLES_STR_SIZE]; WCHAR szShortDateSep[MAX_SAMPLES_STR_SIZE];
INT nSepStrSize; INT nSepStrSize;
INT nSepCount; INT nSepCount;
/* Get setted separator */ /* Get setted separator */
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATESEP_COMBO,
WM_GETTEXT, WM_GETTEXT,
(WPARAM)MAX_SAMPLES_STR_SIZE, (WPARAM)MAX_SAMPLES_STR_SIZE,
(LPARAM)szShortDateSep); (LPARAM)szShortDateSep);
/* Get setted separator string size */ /* Get setted separator string size */
nSepStrSize = _tcslen(szShortDateSep); nSepStrSize = wcslen(szShortDateSep);
/* Check date components */ /* Check date components */
for (nSepCount = 0; nSepCount < nSepStrSize; nSepCount++) for (nSepCount = 0; nSepCount < nSepStrSize; nSepCount++)
{ {
if (_istalnum(szShortDateSep[nSepCount]) || (szShortDateSep[nSepCount] == _T('\''))) if (iswalnum(szShortDateSep[nSepCount]) || (szShortDateSep[nSepCount] == L'\''))
{ {
PrintErrorMsgBox(IDS_ERROR_SYMBOL_SEPARATE); PrintErrorMsgBox(IDS_ERROR_SYMBOL_SEPARATE);
return FALSE; return FALSE;
@ -113,48 +113,48 @@ SetShortDateSep(HWND hwndDlg, LCID lcid)
} }
/* Save date separator */ /* Save date separator */
SetLocaleInfo(lcid, LOCALE_SDATE, szShortDateSep); SetLocaleInfoW(pGlobalData->lcid, LOCALE_SDATE, szShortDateSep);
return TRUE; return TRUE;
} }
/* Setted up short date format to registry */ /* Setted up short date format to registry */
static BOOL static BOOL
SetShortDateFormat(HWND hwndDlg, LCID lcid) SetShortDateFormat(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szShortDateFmt[MAX_SAMPLES_STR_SIZE]; WCHAR szShortDateFmt[MAX_SAMPLES_STR_SIZE];
TCHAR szShortDateSep[MAX_SAMPLES_STR_SIZE]; WCHAR szShortDateSep[MAX_SAMPLES_STR_SIZE];
TCHAR szFoundDateSep[MAX_SAMPLES_STR_SIZE]; WCHAR szFoundDateSep[MAX_SAMPLES_STR_SIZE];
LPTSTR pszResultStr; PWSTR pszResultStr;
LPTSTR pszFoundSep; PWSTR pszFoundSep;
BOOL OpenApostFlg = FALSE; BOOL OpenApostFlg = FALSE;
INT nFmtStrSize; INT nFmtStrSize;
INT nDateCompCount; INT nDateCompCount;
/* Get setted format */ /* Get setted format */
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATEFMT_COMBO,
WM_GETTEXT, WM_GETTEXT,
(WPARAM)MAX_SAMPLES_STR_SIZE, (WPARAM)MAX_SAMPLES_STR_SIZE,
(LPARAM)szShortDateFmt); (LPARAM)szShortDateFmt);
/* Get setted separator */ /* Get setted separator */
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATESEP_COMBO,
WM_GETTEXT, WM_GETTEXT,
(WPARAM)MAX_SAMPLES_STR_SIZE, (WPARAM)MAX_SAMPLES_STR_SIZE,
(LPARAM)szShortDateSep); (LPARAM)szShortDateSep);
/* Get setted format-string size */ /* Get setted format-string size */
nFmtStrSize = _tcslen(szShortDateFmt); nFmtStrSize = wcslen(szShortDateFmt);
/* Check date components */ /* Check date components */
for (nDateCompCount = 0; nDateCompCount < nFmtStrSize; nDateCompCount++) for (nDateCompCount = 0; nDateCompCount < nFmtStrSize; nDateCompCount++)
{ {
if (szShortDateFmt[nDateCompCount] == _T('\'')) if (szShortDateFmt[nDateCompCount] == L'\'')
{ {
OpenApostFlg = !OpenApostFlg; OpenApostFlg = !OpenApostFlg;
} }
if (_istalnum(szShortDateFmt[nDateCompCount]) && if (iswalnum(szShortDateFmt[nDateCompCount]) &&
!isDateCompAl(szShortDateFmt[nDateCompCount]) && !isDateCompAl(szShortDateFmt[nDateCompCount]) &&
!OpenApostFlg) !OpenApostFlg)
{ {
@ -173,47 +173,47 @@ SetShortDateFormat(HWND hwndDlg, LCID lcid)
pszFoundSep = FindDateSep(szShortDateFmt); pszFoundSep = FindDateSep(szShortDateFmt);
/* Substring replacement of separator */ /* Substring replacement of separator */
_tcscpy(szFoundDateSep, pszFoundSep); wcscpy(szFoundDateSep, pszFoundSep);
pszResultStr = ReplaceSubStr(szShortDateFmt, szShortDateSep, szFoundDateSep); pszResultStr = ReplaceSubStr(szShortDateFmt, szShortDateSep, szFoundDateSep);
_tcscpy(szShortDateFmt, pszResultStr); wcscpy(szShortDateFmt, pszResultStr);
free(pszResultStr); free(pszResultStr);
if(pszFoundSep) if(pszFoundSep)
free(pszFoundSep); free(pszFoundSep);
/* Save short date format */ /* Save short date format */
SetLocaleInfo(lcid, LOCALE_SSHORTDATE, szShortDateFmt); SetLocaleInfoW(pGlobalData->lcid, LOCALE_SSHORTDATE, szShortDateFmt);
return TRUE; return TRUE;
} }
/* Setted up long date format to registry */ /* Setted up long date format to registry */
static BOOL static BOOL
SetLongDateFormat(HWND hwndDlg, LCID lcid) SetLongDateFormat(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szLongDateFmt[MAX_SAMPLES_STR_SIZE]; WCHAR szLongDateFmt[MAX_SAMPLES_STR_SIZE];
BOOL OpenApostFlg = FALSE; BOOL OpenApostFlg = FALSE;
INT nFmtStrSize; INT nFmtStrSize;
INT nDateCompCount; INT nDateCompCount;
/* Get setted format */ /* Get setted format */
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO), SendDlgItemMessageW(hwndDlg, IDC_LONGDATEFMT_COMBO,
WM_GETTEXT, WM_GETTEXT,
(WPARAM)MAX_SAMPLES_STR_SIZE, (WPARAM)MAX_SAMPLES_STR_SIZE,
(LPARAM)szLongDateFmt); (LPARAM)szLongDateFmt);
/* Get setted format string size */ /* Get setted format string size */
nFmtStrSize = _tcslen(szLongDateFmt); nFmtStrSize = wcslen(szLongDateFmt);
/* Check date components */ /* Check date components */
for (nDateCompCount = 0; nDateCompCount < nFmtStrSize; nDateCompCount++) for (nDateCompCount = 0; nDateCompCount < nFmtStrSize; nDateCompCount++)
{ {
if (szLongDateFmt[nDateCompCount] == _T('\'')) if (szLongDateFmt[nDateCompCount] == L'\'')
{ {
OpenApostFlg = !OpenApostFlg; OpenApostFlg = !OpenApostFlg;
} }
if (_istalnum(szLongDateFmt[nDateCompCount]) && if (iswalnum(szLongDateFmt[nDateCompCount]) &&
!isDateCompAl(szLongDateFmt[nDateCompCount]) && !isDateCompAl(szLongDateFmt[nDateCompCount]) &&
!OpenApostFlg) !OpenApostFlg)
{ {
@ -230,176 +230,176 @@ SetLongDateFormat(HWND hwndDlg, LCID lcid)
} }
/* Save short date format */ /* Save short date format */
SetLocaleInfo(lcid, LOCALE_SLONGDATE, szLongDateFmt); SetLocaleInfoW(pGlobalData->lcid, LOCALE_SLONGDATE, szLongDateFmt);
return TRUE; return TRUE;
} }
/* Init short date separator control box */ /* Init short date separator control box */
static VOID static VOID
InitShortDateSepSamples(HWND hwndDlg, LCID lcid) InitShortDateSepSamples(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
LPTSTR ShortDateSepSamples[MAX_SHRT_DATE_SEPARATORS] = PWSTR ShortDateSepSamples[MAX_SHRT_DATE_SEPARATORS] =
{ {
_T("."), L".",
_T("/"), L"/",
_T("-") L"-"
}; };
TCHAR szShortDateSep[MAX_SAMPLES_STR_SIZE]; WCHAR szShortDateSep[MAX_SAMPLES_STR_SIZE];
INT nCBIndex; INT nCBIndex;
INT nRetCode; INT nRetCode;
/* Get current short date separator */ /* Get current short date separator */
GetLocaleInfo(lcid, GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SDATE, LOCALE_SDATE,
szShortDateSep, szShortDateSep,
MAX_SAMPLES_STR_SIZE); MAX_SAMPLES_STR_SIZE);
/* Clear all box content */ /* Clear all box content */
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATESEP_COMBO,
CB_RESETCONTENT, CB_RESETCONTENT,
(WPARAM)0, (WPARAM)0,
(LPARAM)0); (LPARAM)0);
/* Create standard list of separators */ /* Create standard list of separators */
for (nCBIndex = 0; nCBIndex < MAX_SHRT_DATE_SEPARATORS; nCBIndex++) for (nCBIndex = 0; nCBIndex < MAX_SHRT_DATE_SEPARATORS; nCBIndex++)
{ {
SendMessageW(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATESEP_COMBO,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)ShortDateSepSamples[nCBIndex]); (LPARAM)ShortDateSepSamples[nCBIndex]);
} }
/* Set current item to value from registry */ /* Set current item to value from registry */
nRetCode = SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO), nRetCode = SendDlgItemMessageW(hwndDlg, IDC_SHRTDATESEP_COMBO,
CB_SELECTSTRING, CB_SELECTSTRING,
-1, -1,
(LPARAM)szShortDateSep); (LPARAM)szShortDateSep);
/* If it is not successful, add new value to list and select them */ /* If it is not successful, add new value to list and select them */
if (nRetCode == CB_ERR) if (nRetCode == CB_ERR)
{ {
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATESEP_COMBO,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)szShortDateSep); (LPARAM)szShortDateSep);
SendMessageW(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATESEP_COMBO,
CB_SELECTSTRING, CB_SELECTSTRING,
-1, -1,
(LPARAM)szShortDateSep); (LPARAM)szShortDateSep);
} }
} }
static BOOL CALLBACK static BOOL CALLBACK
ShortDateFormatEnumProc(LPTSTR lpTimeFormatString) ShortDateFormatEnumProc(PWSTR lpTimeFormatString)
{ {
SendMessage(hwndEnum, SendMessageW(hwndEnum,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)lpTimeFormatString); (LPARAM)lpTimeFormatString);
return TRUE; return TRUE;
} }
/* Init short date control box */ /* Init short date control box */
VOID VOID
InitShortDateCB(HWND hwndDlg, LCID lcid) InitShortDateCB(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szShortDateFmt[MAX_SAMPLES_STR_SIZE]; WCHAR szShortDateFmt[MAX_SAMPLES_STR_SIZE];
INT nRetCode; INT nRetCode;
/* Limit text lengths */ /* Limit text lengths */
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATEFMT_COMBO,
CB_LIMITTEXT, CB_LIMITTEXT,
MAX_SHRTDATEFMT, MAX_SHRTDATEFMT,
0); 0);
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATESEP_COMBO,
CB_LIMITTEXT, CB_LIMITTEXT,
MAX_SHRTDATESEP, MAX_SHRTDATESEP,
0); 0);
/* Get current short date format */ /* Get current short date format */
GetLocaleInfo(lcid, GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SSHORTDATE, LOCALE_SSHORTDATE,
szShortDateFmt, szShortDateFmt,
MAX_SAMPLES_STR_SIZE); MAX_SAMPLES_STR_SIZE);
/* Clear all box content */ /* Clear all box content */
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATEFMT_COMBO,
CB_RESETCONTENT, CB_RESETCONTENT,
(WPARAM)0, (WPARAM)0,
(LPARAM)0); (LPARAM)0);
/* Enumerate short date formats */ /* Enumerate short date formats */
hwndEnum = GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO); hwndEnum = GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO);
EnumDateFormats(ShortDateFormatEnumProc, lcid, DATE_SHORTDATE); EnumDateFormatsW(ShortDateFormatEnumProc, pGlobalData->lcid, DATE_SHORTDATE);
/* Set current item to value from registry */ /* Set current item to value from registry */
nRetCode = SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), nRetCode = SendDlgItemMessageW(hwndDlg, IDC_SHRTDATEFMT_COMBO,
CB_SELECTSTRING, CB_SELECTSTRING,
-1, -1,
(LPARAM)szShortDateFmt); (LPARAM)szShortDateFmt);
/* If it is not successful, add new value to list and select them */ /* If it is not successful, add new value to list and select them */
if (nRetCode == CB_ERR) if (nRetCode == CB_ERR)
{ {
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATEFMT_COMBO,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)szShortDateFmt); (LPARAM)szShortDateFmt);
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO), SendDlgItemMessageW(hwndDlg, IDC_SHRTDATEFMT_COMBO,
CB_SELECTSTRING, CB_SELECTSTRING,
-1, -1,
(LPARAM)szShortDateFmt); (LPARAM)szShortDateFmt);
} }
} }
/* Init long date control box */ /* Init long date control box */
static VOID static VOID
InitLongDateCB(HWND hwndDlg, LCID lcid) InitLongDateCB(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR szLongDateFmt[MAX_SAMPLES_STR_SIZE]; WCHAR szLongDateFmt[MAX_SAMPLES_STR_SIZE];
INT nRetCode; INT nRetCode;
/* Limit text length */ /* Limit text length */
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO), SendDlgItemMessageW(hwndDlg, IDC_LONGDATEFMT_COMBO,
CB_LIMITTEXT, CB_LIMITTEXT,
MAX_LONGDATEFMT, MAX_LONGDATEFMT,
0); 0);
/* Get current long date format */ /* Get current long date format */
GetLocaleInfo(lcid, GetLocaleInfoW(pGlobalData->lcid,
LOCALE_SLONGDATE, LOCALE_SLONGDATE,
szLongDateFmt, szLongDateFmt,
MAX_SAMPLES_STR_SIZE); MAX_SAMPLES_STR_SIZE);
/* Clear all box content */ /* Clear all box content */
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO), SendDlgItemMessageW(hwndDlg, IDC_LONGDATEFMT_COMBO,
CB_RESETCONTENT, CB_RESETCONTENT,
(WPARAM)0, (WPARAM)0,
(LPARAM)0); (LPARAM)0);
/* Enumerate short long formats */ /* Enumerate short long formats */
hwndEnum = GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO); hwndEnum = GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO);
EnumDateFormats(ShortDateFormatEnumProc, lcid, DATE_LONGDATE); EnumDateFormatsW(ShortDateFormatEnumProc, pGlobalData->lcid, DATE_LONGDATE);
/* Set current item to value from registry */ /* Set current item to value from registry */
nRetCode = SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO), nRetCode = SendDlgItemMessageW(hwndDlg, IDC_LONGDATEFMT_COMBO,
CB_SELECTSTRING, CB_SELECTSTRING,
-1, -1,
(LPARAM)szLongDateFmt); (LPARAM)szLongDateFmt);
/* If it is not successful, add new value to list and select them */ /* If it is not successful, add new value to list and select them */
if (nRetCode == CB_ERR) if (nRetCode == CB_ERR)
{ {
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO), SendDlgItemMessageW(hwndDlg, IDC_LONGDATEFMT_COMBO,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)szLongDateFmt); (LPARAM)szLongDateFmt);
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO), SendDlgItemMessageW(hwndDlg, IDC_LONGDATEFMT_COMBO,
CB_SELECTSTRING, CB_SELECTSTRING,
-1, -1,
(LPARAM)szLongDateFmt); (LPARAM)szLongDateFmt);
} }
} }
@ -407,26 +407,26 @@ InitLongDateCB(HWND hwndDlg, LCID lcid)
static VOID static VOID
SetMaxDate(HWND hwndDlg, LCID lcid) SetMaxDate(HWND hwndDlg, LCID lcid)
{ {
TCHAR szMaxDateVal[YEAR_STR_MAX_SIZE]; WCHAR szMaxDateVal[YEAR_STR_MAX_SIZE];
HWND hWndYearSpin; HWND hWndYearSpin;
INT nSpinVal; INT nSpinVal;
hWndYearSpin = GetDlgItem(hwndDlg, IDC_SCR_MAX_YEAR); hWndYearSpin = GetDlgItem(hwndDlg, IDC_SCR_MAX_YEAR);
/* Get spin value */ /* Get spin value */
nSpinVal=LOWORD(SendMessage(hWndYearSpin, nSpinVal=LOWORD(SendMessageW(hWndYearSpin,
UDM_GETPOS, UDM_GETPOS,
0, 0,
0)); 0));
/* convert to wide char */ /* convert to wide char */
_itot(nSpinVal, szMaxDateVal, DECIMAL_RADIX); _itow(nSpinVal, szMaxDateVal, DECIMAL_RADIX);
/* Save max date value */ /* Save max date value */
SetCalendarInfo(lcid, SetCalendarInfoW(lcid,
CAL_GREGORIAN, CAL_GREGORIAN,
48 , /* CAL_ITWODIGITYEARMAX */ 48 , /* CAL_ITWODIGITYEARMAX */
(LPCTSTR)szMaxDateVal); (PCWSTR)szMaxDateVal);
} }
/* Get max date value from registry set */ /* Get max date value from registry set */
@ -435,12 +435,12 @@ GetMaxDate(LCID lcid)
{ {
INT nMaxDateVal = 0; INT nMaxDateVal = 0;
GetCalendarInfo(lcid, GetCalendarInfoW(lcid,
CAL_GREGORIAN, CAL_GREGORIAN,
CAL_ITWODIGITYEARMAX | CAL_RETURN_NUMBER, CAL_ITWODIGITYEARMAX | CAL_RETURN_NUMBER,
NULL, NULL,
0, /* ret type - number */ 0, /* ret type - number */
(LPDWORD)&nMaxDateVal); (LPDWORD)&nMaxDateVal);
return nMaxDateVal; return nMaxDateVal;
} }
@ -449,39 +449,39 @@ GetMaxDate(LCID lcid)
static VOID static VOID
SetMinData(HWND hwndDlg) SetMinData(HWND hwndDlg)
{ {
TCHAR OutBuffer[YEAR_STR_MAX_SIZE]; WCHAR OutBuffer[YEAR_STR_MAX_SIZE];
HWND hWndYearSpin; HWND hWndYearSpin;
INT nSpinVal; INT nSpinVal;
hWndYearSpin = GetDlgItem(hwndDlg, IDC_SCR_MAX_YEAR); hWndYearSpin = GetDlgItem(hwndDlg, IDC_SCR_MAX_YEAR);
/* Get spin value */ /* Get spin value */
nSpinVal = LOWORD(SendMessage(hWndYearSpin, nSpinVal = LOWORD(SendMessageW(hWndYearSpin,
UDM_GETPOS, UDM_GETPOS,
0, 0,
0)); 0));
/* Set min year value */ /* Set min year value */
wsprintf(OutBuffer, _T("%d"), (DWORD)nSpinVal - YEAR_DIFF); wsprintf(OutBuffer, L"%d", (DWORD)nSpinVal - YEAR_DIFF);
SendMessage(GetDlgItem(hwndDlg, IDC_FIRSTYEAR_EDIT), SendDlgItemMessageW(hwndDlg, IDC_FIRSTYEAR_EDIT,
WM_SETTEXT, WM_SETTEXT,
0, 0,
(LPARAM)OutBuffer); (LPARAM)OutBuffer);
} }
/* Init spin control */ /* Init spin control */
static VOID static VOID
InitMinMaxDateSpin(HWND hwndDlg, LCID lcid) InitMinMaxDateSpin(HWND hwndDlg, PGLOBALDATA pGlobalData)
{ {
TCHAR OutBuffer[YEAR_STR_MAX_SIZE]; WCHAR OutBuffer[YEAR_STR_MAX_SIZE];
HWND hWndYearSpin; HWND hWndYearSpin;
/* Limit text lengths */ /* Limit text lengths */
SendMessage(GetDlgItem(hwndDlg, IDC_FIRSTYEAR_EDIT), SendDlgItemMessageW(hwndDlg, IDC_FIRSTYEAR_EDIT,
EM_LIMITTEXT, EM_LIMITTEXT,
MAX_YEAR_EDIT, MAX_YEAR_EDIT,
0); 0);
SendMessage(GetDlgItem(hwndDlg, IDC_SECONDYEAR_EDIT), SendDlgItemMessageW(hwndDlg, IDC_SECONDYEAR_EDIT,
EM_LIMITTEXT, EM_LIMITTEXT,
MAX_YEAR_EDIT, MAX_YEAR_EDIT,
0); 0);
@ -489,51 +489,51 @@ InitMinMaxDateSpin(HWND hwndDlg, LCID lcid)
hWndYearSpin = GetDlgItem(hwndDlg, IDC_SCR_MAX_YEAR); hWndYearSpin = GetDlgItem(hwndDlg, IDC_SCR_MAX_YEAR);
/* Init max date value */ /* Init max date value */
wsprintf(OutBuffer, _T("%04d"), (DWORD)GetMaxDate(lcid)); wsprintf(OutBuffer, L"%04d", (DWORD)GetMaxDate(pGlobalData->lcid));
SendMessage(GetDlgItem(hwndDlg, IDC_SECONDYEAR_EDIT), SendDlgItemMessageW(hwndDlg, IDC_SECONDYEAR_EDIT,
WM_SETTEXT, WM_SETTEXT,
0, 0,
(LPARAM)OutBuffer); (LPARAM)OutBuffer);
/* Init min date value */ /* Init min date value */
wsprintf(OutBuffer, _T("%04d"), (DWORD)GetMaxDate(lcid) - YEAR_DIFF); wsprintf(OutBuffer, L"%04d", (DWORD)GetMaxDate(pGlobalData->lcid) - YEAR_DIFF);
SendMessage(GetDlgItem(hwndDlg, IDC_FIRSTYEAR_EDIT), SendDlgItemMessageW(hwndDlg, IDC_FIRSTYEAR_EDIT,
WM_SETTEXT, WM_SETTEXT,
0, 0,
(LPARAM)OutBuffer); (LPARAM)OutBuffer);
/* Init updown control */ /* Init updown control */
/* Set bounds */ /* Set bounds */
SendMessage(hWndYearSpin, SendMessageW(hWndYearSpin,
UDM_SETRANGE, UDM_SETRANGE,
0, 0,
MAKELONG(MAX_YEAR,YEAR_DIFF)); MAKELONG(MAX_YEAR,YEAR_DIFF));
/* Set current value */ /* Set current value */
SendMessage(hWndYearSpin, SendMessageW(hWndYearSpin,
UDM_SETPOS, UDM_SETPOS,
0, 0,
MAKELONG(GetMaxDate(lcid),0)); MAKELONG(GetMaxDate(pGlobalData->lcid),0));
} }
/* Update all date locale samples */ /* Update all date locale samples */
static VOID static VOID
UpdateDateLocaleSamples(HWND hwndDlg, UpdateDateLocaleSamples(HWND hwndDlg,
LCID lcidLocale) PGLOBALDATA pGlobalData)
{ {
TCHAR OutBuffer[MAX_SAMPLES_STR_SIZE]; WCHAR OutBuffer[MAX_SAMPLES_STR_SIZE];
/* Get short date format sample */ /* Get short date format sample */
GetDateFormat(lcidLocale, DATE_SHORTDATE, NULL, NULL, OutBuffer, GetDateFormatW(pGlobalData->lcid, DATE_SHORTDATE, NULL, NULL, OutBuffer,
MAX_SAMPLES_STR_SIZE); MAX_SAMPLES_STR_SIZE);
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATESAMPLE_EDIT), WM_SETTEXT, SendDlgItemMessageW(hwndDlg, IDC_SHRTDATESAMPLE_EDIT, WM_SETTEXT,
0, (LPARAM)OutBuffer); 0, (LPARAM)OutBuffer);
/* Get long date sample */ /* Get long date sample */
GetDateFormat(lcidLocale, DATE_LONGDATE, NULL, NULL, OutBuffer, GetDateFormatW(pGlobalData->lcid, DATE_LONGDATE, NULL, NULL, OutBuffer,
MAX_SAMPLES_STR_SIZE); MAX_SAMPLES_STR_SIZE);
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATESAMPLE_EDIT), SendDlgItemMessageW(hwndDlg, IDC_LONGDATESAMPLE_EDIT,
WM_SETTEXT, 0, (LPARAM)OutBuffer); WM_SETTEXT, 0, (LPARAM)OutBuffer);
} }
/* Property page dialog callback */ /* Property page dialog callback */
@ -553,11 +553,11 @@ DatePageProc(HWND hwndDlg,
pGlobalData = (PGLOBALDATA)((LPPROPSHEETPAGE)lParam)->lParam; pGlobalData = (PGLOBALDATA)((LPPROPSHEETPAGE)lParam)->lParam;
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData); SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
InitMinMaxDateSpin(hwndDlg, pGlobalData->lcid); InitMinMaxDateSpin(hwndDlg, pGlobalData);
UpdateDateLocaleSamples(hwndDlg, pGlobalData->lcid); UpdateDateLocaleSamples(hwndDlg, pGlobalData);
InitShortDateCB(hwndDlg, pGlobalData->lcid); InitShortDateCB(hwndDlg, pGlobalData);
InitLongDateCB(hwndDlg, pGlobalData->lcid); InitLongDateCB(hwndDlg, pGlobalData);
InitShortDateSepSamples(hwndDlg, pGlobalData->lcid); InitShortDateSepSamples(hwndDlg, pGlobalData);
/* TODO: Add other calendar types */ /* TODO: Add other calendar types */
break; break;
@ -602,13 +602,13 @@ DatePageProc(HWND hwndDlg,
if (lpnm->code == (UINT)PSN_APPLY) if (lpnm->code == (UINT)PSN_APPLY)
{ {
SetMaxDate(hwndDlg, pGlobalData->lcid); SetMaxDate(hwndDlg, pGlobalData->lcid);
if(!SetShortDateSep(hwndDlg, pGlobalData->lcid)) break; if(!SetShortDateSep(hwndDlg, pGlobalData)) break;
if(!SetShortDateFormat(hwndDlg, pGlobalData->lcid)) break; if(!SetShortDateFormat(hwndDlg, pGlobalData)) break;
if(!SetLongDateFormat(hwndDlg, pGlobalData->lcid)) break; if(!SetLongDateFormat(hwndDlg, pGlobalData)) break;
InitShortDateCB(hwndDlg, pGlobalData->lcid); InitShortDateCB(hwndDlg, pGlobalData);
/* FIXME: */ /* FIXME: */
//Sleep(15); //Sleep(15);
UpdateDateLocaleSamples(hwndDlg, pGlobalData->lcid); UpdateDateLocaleSamples(hwndDlg, pGlobalData);
} }
} }
break; break;

View file

@ -29,7 +29,7 @@
#include <debug.h> #include <debug.h>
#define SAMPLE_NUMBER _T("123456789") #define SAMPLE_NUMBER L"123456789"
#define NO_FLAG 0 #define NO_FLAG 0
typedef struct typedef struct
@ -87,11 +87,11 @@ static BOOL CALLBACK
LocalesEnumProc(LPTSTR lpLocale) LocalesEnumProc(LPTSTR lpLocale)
{ {
LCID lcid; LCID lcid;
TCHAR lang[255]; WCHAR lang[255];
INT index; INT index;
BOOL bNoShow = FALSE; BOOL bNoShow = FALSE;
lcid = _tcstoul(lpLocale, NULL, 16); lcid = wcstoul(lpLocale, NULL, 16);
/* Display only languages with installed support */ /* Display only languages with installed support */
if (!IsValidLocale(lcid, LCID_INSTALLED)) if (!IsValidLocale(lcid, LCID_INSTALLED))
@ -102,7 +102,7 @@ LocalesEnumProc(LPTSTR lpLocale)
{ {
if (bSpain == FALSE) if (bSpain == FALSE)
{ {
LoadString(hApplet, IDS_SPAIN, lang, 255); LoadStringW(hApplet, IDS_SPAIN, lang, 255);
bSpain = TRUE; bSpain = TRUE;
} }
else else
@ -112,20 +112,20 @@ LocalesEnumProc(LPTSTR lpLocale)
} }
else else
{ {
GetLocaleInfo(lcid, LOCALE_SLANGUAGE, lang, sizeof(lang)/sizeof(TCHAR)); GetLocaleInfoW(lcid, LOCALE_SLANGUAGE, lang, sizeof(lang)/sizeof(WCHAR));
} }
if (bNoShow == FALSE) if (bNoShow == FALSE)
{ {
index = SendMessage(hList, index = SendMessageW(hList,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)lang); (LPARAM)lang);
SendMessage(hList, SendMessageW(hList,
CB_SETITEMDATA, CB_SETITEMDATA,
index, index,
(LPARAM)lcid); (LPARAM)lcid);
} }
return TRUE; return TRUE;
@ -196,20 +196,20 @@ UpdateLocaleSample(
static VOID static VOID
CreateLanguagesList(HWND hwnd) CreateLanguagesList(HWND hwnd)
{ {
TCHAR langSel[255]; WCHAR langSel[255];
hList = hwnd; hList = hwnd;
bSpain = FALSE; bSpain = FALSE;
EnumSystemLocales(LocalesEnumProc, LCID_SUPPORTED); EnumSystemLocalesW(LocalesEnumProc, LCID_SUPPORTED);
/* Select current locale */ /* Select current locale */
/* or should it be System and not user? */ /* or should it be System and not user? */
GetLocaleInfo(GetUserDefaultLCID(), LOCALE_SLANGUAGE, langSel, sizeof(langSel)/sizeof(TCHAR)); GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_SLANGUAGE, langSel, sizeof(langSel)/sizeof(WCHAR));
SendMessage(hList, SendMessageW(hList,
CB_SELECTSTRING, CB_SELECTSTRING,
-1, -1,
(LPARAM)langSel); (LPARAM)langSel);
} }
@ -428,21 +428,21 @@ BOOL
CALLBACK CALLBACK
LocationsEnumProc(GEOID gId) LocationsEnumProc(GEOID gId)
{ {
TCHAR loc[MAX_STR_SIZE]; WCHAR loc[MAX_STR_SIZE];
INT index; INT index;
if (GetGeoInfo(gId, GEO_FRIENDLYNAME, loc, MAX_STR_SIZE, LANG_SYSTEM_DEFAULT) == 0) if (GetGeoInfoW(gId, GEO_FRIENDLYNAME, loc, MAX_STR_SIZE, LANG_SYSTEM_DEFAULT) == 0)
return TRUE; return TRUE;
index = (INT)SendMessage(hGeoList, index = (INT)SendMessageW(hGeoList,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)loc); (LPARAM)loc);
SendMessage(hGeoList, SendMessageW(hGeoList,
CB_SETITEMDATA, CB_SETITEMDATA,
index, index,
(LPARAM)gId); (LPARAM)gId);
return TRUE; return TRUE;
} }
@ -453,7 +453,7 @@ GEOID
CreateLocationsList(HWND hWnd) CreateLocationsList(HWND hWnd)
{ {
GEOID userGeoID; GEOID userGeoID;
TCHAR loc[MAX_STR_SIZE]; WCHAR loc[MAX_STR_SIZE];
hGeoList = hWnd; hGeoList = hWnd;
@ -461,16 +461,16 @@ CreateLocationsList(HWND hWnd)
/* Select current location */ /* Select current location */
userGeoID = GetUserGeoID(GEOCLASS_NATION); userGeoID = GetUserGeoID(GEOCLASS_NATION);
GetGeoInfo(userGeoID, GetGeoInfoW(userGeoID,
GEO_FRIENDLYNAME, GEO_FRIENDLYNAME,
loc, loc,
MAX_STR_SIZE, MAX_STR_SIZE,
LANG_SYSTEM_DEFAULT); LANG_SYSTEM_DEFAULT);
SendMessage(hGeoList, SendMessageW(hGeoList,
CB_SELECTSTRING, CB_SELECTSTRING,
(WPARAM) -1, (WPARAM) -1,
(LPARAM)loc); (LPARAM)loc);
return userGeoID; return userGeoID;
} }

View file

@ -91,26 +91,26 @@ InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc, LPARAM lParam
BOOL BOOL
OpenSetupInf(VOID) OpenSetupInf(VOID)
{ {
LPTSTR lpCmdLine; PWSTR lpCmdLine;
LPTSTR lpSwitch; PWSTR lpSwitch;
size_t len; size_t len;
lpCmdLine = GetCommandLine(); lpCmdLine = GetCommandLineW();
lpSwitch = _tcsstr(lpCmdLine, _T("/f:\"")); lpSwitch = wcsstr(lpCmdLine, L"/f:\"");
if (!lpSwitch) if (!lpSwitch)
return FALSE; return FALSE;
len = _tcslen(lpSwitch); len = wcslen(lpSwitch);
if (len < 5 || lpSwitch[len-1] != _T('\"')) if (len < 5 || lpSwitch[len-1] != L'\"')
{ {
DPRINT1("Invalid switch: %ls\n", lpSwitch); DPRINT1("Invalid switch: %ls\n", lpSwitch);
return FALSE; return FALSE;
} }
lpSwitch[len-1] = _T('\0'); lpSwitch[len-1] = L'\0';
hSetupInf = SetupOpenInfFile(&lpSwitch[4], NULL, INF_STYLE_OLDNT, NULL); hSetupInf = SetupOpenInfFileW(&lpSwitch[4], NULL, INF_STYLE_OLDNT, NULL);
if (hSetupInf == INVALID_HANDLE_VALUE) if (hSetupInf == INVALID_HANDLE_VALUE)
{ {
DPRINT1("Failed to open INF file: %ls\n", &lpSwitch[4]); DPRINT1("Failed to open INF file: %ls\n", &lpSwitch[4]);
@ -124,27 +124,27 @@ VOID
ParseSetupInf(VOID) ParseSetupInf(VOID)
{ {
INFCONTEXT InfContext; INFCONTEXT InfContext;
TCHAR szBuffer[30]; WCHAR szBuffer[30];
if (!SetupFindFirstLine(hSetupInf, if (!SetupFindFirstLineW(hSetupInf,
_T("Unattend"), L"Unattend",
_T("LocaleID"), L"LocaleID",
&InfContext)) &InfContext))
{ {
SetupCloseInfFile(hSetupInf); SetupCloseInfFile(hSetupInf);
DPRINT1("SetupFindFirstLine failed\n"); DPRINT1("SetupFindFirstLine failed\n");
return; return;
} }
if (!SetupGetStringField(&InfContext, 1, szBuffer, if (!SetupGetStringFieldW(&InfContext, 1, szBuffer,
sizeof(szBuffer) / sizeof(TCHAR), NULL)) sizeof(szBuffer) / sizeof(WCHAR), NULL))
{ {
SetupCloseInfFile(hSetupInf); SetupCloseInfFile(hSetupInf);
DPRINT1("SetupGetStringField failed\n"); DPRINT1("SetupGetStringField failed\n");
return; return;
} }
UnattendLCID = _tcstoul(szBuffer, NULL, 16); UnattendLCID = wcstoul(szBuffer, NULL, 16);
IsUnattendedSetupEnabled = 1; IsUnattendedSetupEnabled = 1;
SetupCloseInfFile(hSetupInf); SetupCloseInfFile(hSetupInf);
} }
@ -169,7 +169,7 @@ Applet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE; psh.dwFlags = PSH_PROPSHEETPAGE;
psh.hwndParent = hCPLWindow; psh.hwndParent = hCPLWindow;
psh.hInstance = hApplet; psh.hInstance = hApplet;
psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON)); psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON));

View file

@ -12,7 +12,6 @@
#include <winuser.h> #include <winuser.h>
#include <cpl.h> #include <cpl.h>
#include <setupapi.h> #include <setupapi.h>
#include <tchar.h>
#include <malloc.h> #include <malloc.h>
#include <ndk/exfuncs.h> #include <ndk/exfuncs.h>
@ -121,11 +120,11 @@ INT_PTR CALLBACK
SortPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); SortPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
/* misc.c */ /* misc.c */
LPTSTR PWSTR
InsSpacesFmt(LPCTSTR szSourceStr, LPCTSTR szFmtStr); InsSpacesFmt(PCWSTR szSourceStr, PCWSTR szFmtStr);
LPTSTR PWSTR
ReplaceSubStr(LPCTSTR szSourceStr, LPCTSTR szStrToReplace, LPCTSTR szTempl); ReplaceSubStr(PCWSTR szSourceStr, PCWSTR szStrToReplace, PCWSTR szTempl);
LONG LONG
APIENTRY APIENTRY

View file

@ -16,47 +16,47 @@
/* szLayoutID like 00000409, szLangID like 00000409 */ /* szLayoutID like 00000409, szLangID like 00000409 */
static BOOL static BOOL
IsLayoutExists(LPTSTR szLayoutID, LPTSTR szLangID) IsLayoutExists(PWSTR szLayoutID, PWSTR szLangID)
{ {
HKEY hKey, hSubKey; HKEY hKey, hSubKey;
TCHAR szPreload[CCH_LAYOUT_ID + 1], szLayoutNum[3 + 1], WCHAR szPreload[CCH_LAYOUT_ID + 1], szLayoutNum[3 + 1],
szTmp[CCH_LAYOUT_ID + 1], szOldLangID[CCH_LAYOUT_ID + 1]; szTmp[CCH_LAYOUT_ID + 1], szOldLangID[CCH_LAYOUT_ID + 1];
DWORD dwIndex = 0, dwType, dwSize; DWORD dwIndex = 0, dwType, dwSize;
BOOL IsLangExists = FALSE; BOOL IsLangExists = FALSE;
LANGID langid; LANGID langid;
if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Preload"), if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Keyboard Layout\\Preload",
0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
{ {
dwSize = sizeof(szLayoutNum); dwSize = sizeof(szLayoutNum);
while (RegEnumValue(hKey, dwIndex, szLayoutNum, &dwSize, NULL, &dwType, NULL, NULL) == ERROR_SUCCESS) while (RegEnumValueW(hKey, dwIndex, szLayoutNum, &dwSize, NULL, &dwType, NULL, NULL) == ERROR_SUCCESS)
{ {
dwSize = sizeof(szPreload); dwSize = sizeof(szPreload);
if (RegQueryValueEx(hKey, szLayoutNum, NULL, NULL, (LPBYTE)szPreload, &dwSize) != ERROR_SUCCESS) if (RegQueryValueExW(hKey, szLayoutNum, NULL, NULL, (LPBYTE)szPreload, &dwSize) != ERROR_SUCCESS)
{ {
RegCloseKey(hKey); RegCloseKey(hKey);
return FALSE; return FALSE;
} }
langid = (LANGID)_tcstoul(szPreload, NULL, 16); langid = (LANGID)wcstoul(szPreload, NULL, 16);
GetLocaleInfo(langid, LOCALE_ILANGUAGE, szTmp, sizeof(szTmp) / sizeof(TCHAR)); GetLocaleInfoW(langid, LOCALE_ILANGUAGE, szTmp, sizeof(szTmp) / sizeof(WCHAR));
wsprintf(szOldLangID, _T("0000%s"), szTmp); wsprintf(szOldLangID, L"0000%s", szTmp);
if (_tcscmp(szOldLangID, szLangID) == 0) if (wcscmp(szOldLangID, szLangID) == 0)
IsLangExists = TRUE; IsLangExists = TRUE;
else else
IsLangExists = FALSE; IsLangExists = FALSE;
if (szPreload[0] == 'd') if (szPreload[0] == 'd')
{ {
if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Substitutes"), if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Keyboard Layout\\Substitutes",
0, KEY_QUERY_VALUE, &hSubKey) == ERROR_SUCCESS) 0, KEY_QUERY_VALUE, &hSubKey) == ERROR_SUCCESS)
{ {
dwSize = sizeof(szTmp); dwSize = sizeof(szTmp);
RegQueryValueEx(hSubKey, szPreload, NULL, NULL, (LPBYTE)szTmp, &dwSize); RegQueryValueExW(hSubKey, szPreload, NULL, NULL, (LPBYTE)szTmp, &dwSize);
if ((_tcscmp(szTmp, szLayoutID) == 0)&&(IsLangExists)) if ((wcscmp(szTmp, szLayoutID) == 0)&&(IsLangExists))
{ {
RegCloseKey(hSubKey); RegCloseKey(hSubKey);
RegCloseKey(hKey); RegCloseKey(hKey);
@ -66,7 +66,7 @@ IsLayoutExists(LPTSTR szLayoutID, LPTSTR szLangID)
} }
else else
{ {
if ((_tcscmp(szPreload, szLayoutID) == 0) && (IsLangExists)) if ((wcscmp(szPreload, szLayoutID) == 0) && (IsLangExists))
{ {
RegCloseKey(hKey); RegCloseKey(hKey);
return TRUE; return TRUE;
@ -85,14 +85,14 @@ IsLayoutExists(LPTSTR szLayoutID, LPTSTR szLangID)
} }
static INT static INT
GetLayoutCount(LPTSTR szLang) GetLayoutCount(PWSTR szLang)
{ {
HKEY hKey; HKEY hKey;
TCHAR szLayoutID[3 + 1], szPreload[CCH_LAYOUT_ID + 1], szLOLang[MAX_PATH]; WCHAR szLayoutID[3 + 1], szPreload[CCH_LAYOUT_ID + 1], szLOLang[MAX_PATH];
DWORD dwIndex = 0, dwType, dwSize; DWORD dwIndex = 0, dwType, dwSize;
UINT Count = 0, i, j; UINT Count = 0, i, j;
if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Preload"), if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Keyboard Layout\\Preload",
0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
{ {
dwSize = sizeof(szLayoutID); dwSize = sizeof(szLayoutID);
@ -100,12 +100,12 @@ GetLayoutCount(LPTSTR szLang)
while (RegEnumValue(hKey, dwIndex, szLayoutID, &dwSize, NULL, &dwType, NULL, NULL) == ERROR_SUCCESS) while (RegEnumValue(hKey, dwIndex, szLayoutID, &dwSize, NULL, &dwType, NULL, NULL) == ERROR_SUCCESS)
{ {
dwSize = sizeof(szPreload); dwSize = sizeof(szPreload);
RegQueryValueEx(hKey, szLayoutID, NULL, NULL, (LPBYTE)szPreload, &dwSize); RegQueryValueExW(hKey, szLayoutID, NULL, NULL, (LPBYTE)szPreload, &dwSize);
for (i = 4, j = 0; i < _tcslen(szPreload)+1; i++, j++) for (i = 4, j = 0; i < wcslen(szPreload)+1; i++, j++)
szLOLang[j] = szPreload[i]; szLOLang[j] = szPreload[i];
if (_tcscmp(szLOLang, szLang) == 0) Count += 1; if (wcscmp(szLOLang, szLang) == 0) Count += 1;
dwSize = sizeof(szLayoutID); dwSize = sizeof(szLayoutID);
dwIndex++; dwIndex++;
@ -119,24 +119,24 @@ GetLayoutCount(LPTSTR szLang)
/* szLayoutID like 00000409, szLangID like 00000409 */ /* szLayoutID like 00000409, szLangID like 00000409 */
static BOOL static BOOL
AddNewLayout(LPTSTR szLayoutID, LPTSTR szLangID) AddNewLayout(PWSTR szLayoutID, PWSTR szLangID)
{ {
TCHAR NewLayout[CCH_ULONG_DEC + 1], Lang[MAX_PATH], WCHAR NewLayout[CCH_ULONG_DEC + 1], Lang[MAX_PATH],
LangID[CCH_LAYOUT_ID + 1], SubPath[CCH_LAYOUT_ID + 1]; LangID[CCH_LAYOUT_ID + 1], SubPath[CCH_LAYOUT_ID + 1];
HKEY hKey, hSubKey; HKEY hKey, hSubKey;
DWORD cValues; DWORD cValues;
LCID lcid; LCID lcid;
if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Preload"), 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Keyboard Layout\\Preload", 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS)
{ {
if (RegQueryInfoKey(hKey, NULL, NULL, NULL, NULL, NULL, NULL, &cValues, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) if (RegQueryInfoKey(hKey, NULL, NULL, NULL, NULL, NULL, NULL, &cValues, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
{ {
_ultot(cValues + 1, NewLayout, 10); _ultow(cValues + 1, NewLayout, 10);
lcid = _tcstoul(szLangID, NULL, 16); lcid = wcstoul(szLangID, NULL, 16);
GetLocaleInfo(MAKELCID(lcid, SORT_DEFAULT), LOCALE_ILANGUAGE, Lang, sizeof(Lang) / sizeof(TCHAR)); GetLocaleInfoW(MAKELCID(lcid, SORT_DEFAULT), LOCALE_ILANGUAGE, Lang, sizeof(Lang) / sizeof(WCHAR));
wsprintf(LangID, _T("0000%s"), Lang); wsprintf(LangID, L"0000%s", Lang);
if (IsLayoutExists(szLayoutID, LangID)) if (IsLayoutExists(szLayoutID, LangID))
{ {
@ -146,22 +146,22 @@ AddNewLayout(LPTSTR szLayoutID, LPTSTR szLangID)
if (GetLayoutCount(Lang) >= 1) if (GetLayoutCount(Lang) >= 1)
{ {
wsprintf(SubPath, _T("d%03d%s"), GetLayoutCount(Lang), Lang); wsprintf(SubPath, L"d%03d%s", GetLayoutCount(Lang), Lang);
} }
else if ((_tcscmp(LangID, szLayoutID) != 0) && (GetLayoutCount(Lang) == 0)) else if ((wcscmp(LangID, szLayoutID) != 0) && (GetLayoutCount(Lang) == 0))
{ {
wsprintf(SubPath, _T("d%03d%s"), 0, Lang); wsprintf(SubPath, L"d%03d%s", 0, Lang);
} }
else SubPath[0] = '\0'; else SubPath[0] = L'\0';
if (_tcslen(SubPath) != 0) if (wcslen(SubPath) != 0)
{ {
if (RegCreateKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Substitutes"), 0, NULL, if (RegCreateKeyExW(HKEY_CURRENT_USER, L"Keyboard Layout\\Substitutes", 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
NULL, &hSubKey, NULL) == ERROR_SUCCESS) NULL, &hSubKey, NULL) == ERROR_SUCCESS)
{ {
if (RegSetValueEx(hSubKey, SubPath, 0, REG_SZ, (LPBYTE)szLayoutID, if (RegSetValueExW(hSubKey, SubPath, 0, REG_SZ, (LPBYTE)szLayoutID,
(DWORD)((CCH_LAYOUT_ID + 1) * sizeof(TCHAR))) != ERROR_SUCCESS) (DWORD)((CCH_LAYOUT_ID + 1) * sizeof(WCHAR))) != ERROR_SUCCESS)
{ {
RegCloseKey(hSubKey); RegCloseKey(hSubKey);
RegCloseKey(hKey); RegCloseKey(hKey);
@ -172,12 +172,12 @@ AddNewLayout(LPTSTR szLayoutID, LPTSTR szLangID)
lstrcpy(szLayoutID, SubPath); lstrcpy(szLayoutID, SubPath);
} }
RegSetValueEx(hKey, RegSetValueExW(hKey,
NewLayout, NewLayout,
0, 0,
REG_SZ, REG_SZ,
(LPBYTE)szLayoutID, (LPBYTE)szLayoutID,
(DWORD)((CCH_LAYOUT_ID + 1) * sizeof(TCHAR))); (DWORD)((CCH_LAYOUT_ID + 1) * sizeof(WCHAR)));
} }
RegCloseKey(hKey); RegCloseKey(hKey);
} }
@ -189,16 +189,16 @@ VOID
AddNewKbLayoutsByLcid(LCID Lcid) AddNewKbLayoutsByLcid(LCID Lcid)
{ {
HINF hIntlInf; HINF hIntlInf;
TCHAR szLang[CCH_LAYOUT_ID + 1], szLangID[CCH_LAYOUT_ID + 1]; WCHAR szLang[CCH_LAYOUT_ID + 1], szLangID[CCH_LAYOUT_ID + 1];
TCHAR szLangStr[MAX_STR_SIZE], szLayoutStr[MAX_STR_SIZE], szStr[MAX_STR_SIZE]; WCHAR szLangStr[MAX_STR_SIZE], szLayoutStr[MAX_STR_SIZE], szStr[MAX_STR_SIZE];
INFCONTEXT InfContext; INFCONTEXT InfContext;
LONG Count; LONG Count;
DWORD FieldCount, Index; DWORD FieldCount, Index;
GetLocaleInfo(MAKELCID(Lcid, SORT_DEFAULT), LOCALE_ILANGUAGE, szLang, sizeof(szLang) / sizeof(TCHAR)); GetLocaleInfoW(MAKELCID(Lcid, SORT_DEFAULT), LOCALE_ILANGUAGE, szLang, sizeof(szLang) / sizeof(WCHAR));
wsprintf(szLangID, _T("0000%s"), szLang); wsprintf(szLangID, L"0000%s", szLang);
hIntlInf = SetupOpenInfFile(_T("intl.inf"), NULL, INF_STYLE_WIN4, NULL); hIntlInf = SetupOpenInfFileW(L"intl.inf", NULL, INF_STYLE_WIN4, NULL);
if (hIntlInf == INVALID_HANDLE_VALUE) if (hIntlInf == INVALID_HANDLE_VALUE)
return; return;
@ -210,10 +210,10 @@ AddNewKbLayoutsByLcid(LCID Lcid)
return; return;
} }
Count = SetupGetLineCount(hIntlInf, _T("Locales")); Count = SetupGetLineCount(hIntlInf, L"Locales");
if (Count <= 0) return; if (Count <= 0) return;
if (SetupFindFirstLine(hIntlInf, _T("Locales"), szLangID, &InfContext)) if (SetupFindFirstLine(hIntlInf, L"Locales", szLangID, &InfContext))
{ {
FieldCount = SetupGetFieldCount(&InfContext); FieldCount = SetupGetFieldCount(&InfContext);
@ -225,12 +225,12 @@ AddNewKbLayoutsByLcid(LCID Lcid)
{ {
INT i, j; INT i, j;
if (_tcslen(szStr) != 13) continue; if (wcslen(szStr) != 13) continue;
wsprintf(szLangStr, _T("0000%s"), szStr); wsprintf(szLangStr, L"0000%s", szStr);
szLangStr[8] = '\0'; szLangStr[8] = L'\0';
for (i = 5, j = 0; i <= _tcslen(szStr); i++, j++) for (i = 5, j = 0; i <= wcslen(szStr); i++, j++)
szLayoutStr[j] = szStr[i]; szLayoutStr[j] = szStr[i];
AddNewLayout(szLayoutStr, szLangStr); AddNewLayout(szLayoutStr, szLangStr);

View file

@ -9,7 +9,7 @@ LanguagesPageProc(HWND hwndDlg,
WPARAM wParam, WPARAM wParam,
LPARAM lParam) LPARAM lParam)
{ {
SHELLEXECUTEINFO shInputDll; SHELLEXECUTEINFOW shInputDll;
switch (uMsg) switch (uMsg)
{ {
@ -23,13 +23,13 @@ LanguagesPageProc(HWND hwndDlg,
case IDC_DETAIL_BUTTON: case IDC_DETAIL_BUTTON:
if (HIWORD(wParam) == BN_CLICKED) if (HIWORD(wParam) == BN_CLICKED)
{ {
memset(&shInputDll, 0x0, sizeof(SHELLEXECUTEINFO)); memset(&shInputDll, 0x0, sizeof(SHELLEXECUTEINFOW));
shInputDll.cbSize = sizeof(shInputDll); shInputDll.cbSize = sizeof(shInputDll);
shInputDll.hwnd = hwndDlg; shInputDll.hwnd = hwndDlg;
shInputDll.lpVerb = _T("open"); shInputDll.lpVerb = L"open";
shInputDll.lpFile = _T("RunDll32.exe"); shInputDll.lpFile = L"RunDll32.exe";
shInputDll.lpParameters = _T("shell32.dll,Control_RunDLL input.dll"); shInputDll.lpParameters = L"shell32.dll,Control_RunDLL input.dll";
if (ShellExecuteEx(&shInputDll) == 0) if (ShellExecuteExW(&shInputDll) == 0)
{ {
PrintErrorMsgBox(IDS_ERROR_INPUT_DLL); PrintErrorMsgBox(IDS_ERROR_INPUT_DLL);
} }

View file

@ -3,25 +3,25 @@
#define NUM_SHEETS 4 #define NUM_SHEETS 4
/* Insert the space */ /* Insert the space */
LPTSTR PWSTR
InsSpacePos(LPCTSTR szInsStr, const int nPos) InsSpacePos(PCWSTR szInsStr, const int nPos)
{ {
LPTSTR pszDestStr; PWSTR pszDestStr;
INT nDestStrCnt = 0; INT nDestStrCnt = 0;
INT nStrCnt; INT nStrCnt;
INT nStrSize; INT nStrSize;
pszDestStr = (LPTSTR)malloc(MAX_SAMPLES_STR_SIZE * sizeof(TCHAR)); pszDestStr = (PWSTR)malloc(MAX_SAMPLES_STR_SIZE * sizeof(WCHAR));
_tcscpy(pszDestStr, szInsStr); wcscpy(pszDestStr, szInsStr);
nStrSize = _tcslen(szInsStr); nStrSize = wcslen(szInsStr);
for (nStrCnt = 0; nStrCnt < nStrSize; nStrCnt++) for (nStrCnt = 0; nStrCnt < nStrSize; nStrCnt++)
{ {
if (nStrCnt == nStrSize - nPos) if (nStrCnt == nStrSize - nPos)
{ {
pszDestStr[nDestStrCnt] = _T(' '); pszDestStr[nDestStrCnt] = L' ';
nDestStrCnt++; nDestStrCnt++;
} }
@ -29,38 +29,38 @@ InsSpacePos(LPCTSTR szInsStr, const int nPos)
nDestStrCnt++; nDestStrCnt++;
} }
pszDestStr[nDestStrCnt] = _T('\0'); pszDestStr[nDestStrCnt] = L'\0';
return pszDestStr; return pszDestStr;
} }
/* Insert the spaces by format string separated by ';' */ /* Insert the spaces by format string separated by ';' */
LPTSTR PWSTR
InsSpacesFmt(LPCTSTR szSourceStr, LPCTSTR szFmtStr) InsSpacesFmt(PCWSTR szSourceStr, PCWSTR szFmtStr)
{ {
LPTSTR pszDestStr; PWSTR pszDestStr;
LPTSTR pszTempStr; PWSTR pszTempStr;
TCHAR szFmtVal[255]; WCHAR szFmtVal[255];
UINT nFmtCount = 0; UINT nFmtCount = 0;
INT nValCount = 0; INT nValCount = 0;
INT nLastVal = 0; INT nLastVal = 0;
INT nSpaceOffset = 0; INT nSpaceOffset = 0;
BOOL wasNul=FALSE; BOOL wasNul=FALSE;
pszDestStr = (LPTSTR)malloc(255 * sizeof(TCHAR)); pszDestStr = (PWSTR)malloc(255 * sizeof(WCHAR));
_tcscpy(pszDestStr, szSourceStr); wcscpy(pszDestStr, szSourceStr);
/* If format is clean return source string */ /* If format is clean return source string */
if (!*szFmtStr) if (!*szFmtStr)
return pszDestStr; return pszDestStr;
/* Search for all format values */ /* Search for all format values */
for (nFmtCount = 0; nFmtCount <= _tcslen(szFmtStr); nFmtCount++) for (nFmtCount = 0; nFmtCount <= wcslen(szFmtStr); nFmtCount++)
{ {
if (szFmtStr[nFmtCount] == _T(';') || szFmtStr[nFmtCount] == _T('\0')) if (szFmtStr[nFmtCount] == L';' || szFmtStr[nFmtCount] == L'\0')
{ {
if (_ttoi(szFmtVal) == 0 && !wasNul) if (_wtoi(szFmtVal) == 0 && !wasNul)
{ {
wasNul=TRUE; wasNul=TRUE;
break; break;
@ -73,22 +73,22 @@ InsSpacesFmt(LPCTSTR szSourceStr, LPCTSTR szFmtStr)
} }
else else
{ {
nSpaceOffset += _ttoi(szFmtVal); nSpaceOffset += _wtoi(szFmtVal);
} }
szFmtVal[nValCount] = _T('\0'); szFmtVal[nValCount] = L'\0';
nValCount=0; nValCount=0;
/* Insert space to finded position plus all pos before */ /* Insert space to finded position plus all pos before */
pszTempStr = InsSpacePos(pszDestStr, nSpaceOffset); pszTempStr = InsSpacePos(pszDestStr, nSpaceOffset);
_tcscpy(pszDestStr,pszTempStr); wcscpy(pszDestStr,pszTempStr);
free(pszTempStr); free(pszTempStr);
/* Num of spaces total increment */ /* Num of spaces total increment */
if (!wasNul) if (!wasNul)
{ {
nSpaceOffset++; nSpaceOffset++;
nLastVal = _ttoi(szFmtVal); nLastVal = _wtoi(szFmtVal);
} }
} }
else else
@ -100,10 +100,10 @@ InsSpacesFmt(LPCTSTR szSourceStr, LPCTSTR szFmtStr)
/* Create spaces for rest part of string */ /* Create spaces for rest part of string */
if (wasNul && nLastVal != 0) if (wasNul && nLastVal != 0)
{ {
for (nFmtCount = nSpaceOffset + nLastVal; nFmtCount < _tcslen(pszDestStr); nFmtCount += nLastVal + 1) for (nFmtCount = nSpaceOffset + nLastVal; nFmtCount < wcslen(pszDestStr); nFmtCount += nLastVal + 1)
{ {
pszTempStr = InsSpacePos(pszDestStr, nFmtCount); pszTempStr = InsSpacePos(pszDestStr, nFmtCount);
_tcscpy(pszDestStr, pszTempStr); wcscpy(pszDestStr, pszTempStr);
free(pszTempStr); free(pszTempStr);
} }
} }
@ -112,30 +112,30 @@ InsSpacesFmt(LPCTSTR szSourceStr, LPCTSTR szFmtStr)
} }
/* Replace given template in source string with string to replace and return received string */ /* Replace given template in source string with string to replace and return received string */
LPTSTR PWSTR
ReplaceSubStr(LPCTSTR szSourceStr, ReplaceSubStr(PCWSTR szSourceStr,
LPCTSTR szStrToReplace, PCWSTR szStrToReplace,
LPCTSTR szTempl) PCWSTR szTempl)
{ {
LPTSTR szDestStr; PWSTR szDestStr;
UINT nCharCnt; UINT nCharCnt;
UINT nSubStrCnt; UINT nSubStrCnt;
UINT nDestStrCnt; UINT nDestStrCnt;
UINT nFirstCharCnt; UINT nFirstCharCnt;
szDestStr = (LPTSTR)malloc(MAX_SAMPLES_STR_SIZE * sizeof(TCHAR)); szDestStr = (PWSTR)malloc(MAX_SAMPLES_STR_SIZE * sizeof(WCHAR));
nDestStrCnt = 0; nDestStrCnt = 0;
nFirstCharCnt = 0; nFirstCharCnt = 0;
_tcscpy(szDestStr, _T("")); wcscpy(szDestStr, L"");
while (nFirstCharCnt < _tcslen(szSourceStr)) while (nFirstCharCnt < wcslen(szSourceStr))
{ {
if (szSourceStr[nFirstCharCnt] == szTempl[0]) if (szSourceStr[nFirstCharCnt] == szTempl[0])
{ {
nSubStrCnt = 0; nSubStrCnt = 0;
for (nCharCnt = nFirstCharCnt; nCharCnt < nFirstCharCnt + _tcslen(szTempl); nCharCnt++) for (nCharCnt = nFirstCharCnt; nCharCnt < nFirstCharCnt + wcslen(szTempl); nCharCnt++)
{ {
if (szSourceStr[nCharCnt] == szTempl[nSubStrCnt]) if (szSourceStr[nCharCnt] == szTempl[nSubStrCnt])
{ {
@ -146,11 +146,11 @@ ReplaceSubStr(LPCTSTR szSourceStr,
break; break;
} }
if (_tcslen(szTempl) == nSubStrCnt) if (wcslen(szTempl) == nSubStrCnt)
{ {
_tcscat(szDestStr, szStrToReplace); wcscat(szDestStr, szStrToReplace);
nDestStrCnt = _tcslen(szDestStr); nDestStrCnt = wcslen(szDestStr);
nFirstCharCnt += _tcslen(szTempl) - 1; nFirstCharCnt += wcslen(szTempl) - 1;
break; break;
} }
} }
@ -158,7 +158,7 @@ ReplaceSubStr(LPCTSTR szSourceStr,
else else
{ {
szDestStr[nDestStrCnt++] = szSourceStr[nFirstCharCnt]; szDestStr[nDestStrCnt++] = szSourceStr[nFirstCharCnt];
szDestStr[nDestStrCnt] = _T('\0'); szDestStr[nDestStrCnt] = L'\0';
} }
nFirstCharCnt++; nFirstCharCnt++;
@ -169,10 +169,10 @@ ReplaceSubStr(LPCTSTR szSourceStr,
static VOID static VOID
InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc, PGLOBALDATA pGlobalData) InitPropSheetPage(PROPSHEETPAGEW *psp, WORD idDlg, DLGPROC DlgProc, PGLOBALDATA pGlobalData)
{ {
ZeroMemory(psp, sizeof(PROPSHEETPAGE)); ZeroMemory(psp, sizeof(PROPSHEETPAGEW));
psp->dwSize = sizeof(PROPSHEETPAGE); psp->dwSize = sizeof(PROPSHEETPAGEW);
psp->dwFlags = PSP_DEFAULT; psp->dwFlags = PSP_DEFAULT;
psp->hInstance = hApplet; psp->hInstance = hApplet;
psp->pszTemplate = MAKEINTRESOURCE(idDlg); psp->pszTemplate = MAKEINTRESOURCE(idDlg);
@ -188,16 +188,16 @@ SetupApplet(
HWND hwndDlg, HWND hwndDlg,
PGLOBALDATA pGlobalData) PGLOBALDATA pGlobalData)
{ {
PROPSHEETPAGE PsPage[NUM_SHEETS + 1]; PROPSHEETPAGEW PsPage[NUM_SHEETS + 1];
PROPSHEETHEADER psh; PROPSHEETHEADERW psh;
TCHAR Caption[MAX_STR_SIZE]; WCHAR Caption[MAX_STR_SIZE];
INT ret; INT_PTR ret;
LoadString(hApplet, IDS_CUSTOMIZE_TITLE, Caption, sizeof(Caption) / sizeof(TCHAR)); LoadStringW(hApplet, IDS_CUSTOMIZE_TITLE, Caption, sizeof(Caption) / sizeof(TCHAR));
ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USECALLBACK | PSH_PROPTITLE; psh.dwFlags = PSH_PROPSHEETPAGE | PSH_USECALLBACK;
psh.hwndParent = hwndDlg; psh.hwndParent = hwndDlg;
psh.hInstance = hApplet; psh.hInstance = hApplet;
psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON)); psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON));
@ -217,7 +217,7 @@ SetupApplet(
InitPropSheetPage(&PsPage[4], IDD_SORTPAGE, SortPageProc, pGlobalData); InitPropSheetPage(&PsPage[4], IDD_SORTPAGE, SortPageProc, pGlobalData);
} }
ret = PropertySheet(&psh); ret = PropertySheetW(&psh);
return (LONG)(ret != -1); return (LONG)(ret != -1);
} }

File diff suppressed because it is too large Load diff

View file

@ -14,11 +14,11 @@ static HWND hWndSortList = NULL;
static BOOL CALLBACK static BOOL CALLBACK
SortTestEnumProc(LPTSTR lpLocale) SortTestEnumProc(PWSTR lpLocale)
{ {
LCID lcid; LCID lcid;
lcid = _tcstoul(lpLocale, NULL, 16); lcid = wcstoul(lpLocale, NULL, 16);
if ((LANGIDFROMLCID(lcid) == LANGIDFROMLCID(userLcid)) && if ((LANGIDFROMLCID(lcid) == LANGIDFROMLCID(userLcid)) &&
(SORTIDFROMLCID(lcid) != SORTIDFROMLCID(userLcid))) (SORTIDFROMLCID(lcid) != SORTIDFROMLCID(userLcid)))
@ -39,7 +39,7 @@ IsSortPageNeeded(LCID lcid)
userLcid = lcid; userLcid = lcid;
bSortPage = FALSE; bSortPage = FALSE;
EnumSystemLocales(SortTestEnumProc, LCID_ALTERNATE_SORTS); EnumSystemLocalesW(SortTestEnumProc, LCID_ALTERNATE_SORTS);
return bSortPage; return bSortPage;
} }
@ -49,25 +49,25 @@ static BOOL CALLBACK
SortEnumProc(LPTSTR lpLocale) SortEnumProc(LPTSTR lpLocale)
{ {
LCID lcid; LCID lcid;
TCHAR lang[255]; WCHAR lang[255];
INT index; INT index;
lcid = _tcstoul(lpLocale, NULL, 16); lcid = wcstoul(lpLocale, NULL, 16);
if ((LANGIDFROMLCID(lcid) == LANGIDFROMLCID(userLcid)) && if ((LANGIDFROMLCID(lcid) == LANGIDFROMLCID(userLcid)) &&
(SORTIDFROMLCID(lcid) != SORTIDFROMLCID(userLcid))) (SORTIDFROMLCID(lcid) != SORTIDFROMLCID(userLcid)))
{ {
GetLocaleInfo(lcid, LOCALE_SSORTNAME, lang, sizeof(lang)/sizeof(TCHAR)); GetLocaleInfoW(lcid, LOCALE_SSORTNAME, lang, sizeof(lang)/sizeof(WCHAR));
index = SendMessage(hWndSortList, index = SendMessageW(hWndSortList,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)lang); (LPARAM)lang);
SendMessage(hWndSortList, SendMessageW(hWndSortList,
CB_SETITEMDATA, CB_SETITEMDATA,
index, index,
(LPARAM)lcid); (LPARAM)lcid);
} }
return TRUE; return TRUE;
@ -76,7 +76,7 @@ SortEnumProc(LPTSTR lpLocale)
static VOID static VOID
CreateSortList(HWND hwnd, LCID lcid) CreateSortList(HWND hwnd, LCID lcid)
{ {
TCHAR lang[255]; WCHAR lang[255];
INT index; INT index;
hWndSortList = hwnd; hWndSortList = hwnd;
@ -86,60 +86,60 @@ CreateSortList(HWND hwnd, LCID lcid)
lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN), SORT_DEFAULT)) lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN), SORT_DEFAULT))
{ {
/* Add traditional sorting */ /* Add traditional sorting */
GetLocaleInfo(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH), GetLocaleInfoW(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH),
LOCALE_SSORTNAME, lang, sizeof(lang)/sizeof(TCHAR)); LOCALE_SSORTNAME, lang, sizeof(lang)/sizeof(TCHAR));
index = SendMessage(hwnd, index = SendMessageW(hwnd,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)lang); (LPARAM)lang);
SendMessage(hwnd, SendMessageW(hwnd,
CB_SETITEMDATA, CB_SETITEMDATA,
index, index,
(LPARAM)MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH)); (LPARAM)MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH));
/* Add modern sorting */ /* Add modern sorting */
GetLocaleInfo(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN), GetLocaleInfoW(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN),
LOCALE_SSORTNAME, lang, sizeof(lang)/sizeof(TCHAR)); LOCALE_SSORTNAME, lang, sizeof(lang)/sizeof(TCHAR));
index = SendMessage(hwnd, index = SendMessageW(hwnd,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)lang); (LPARAM)lang);
SendMessage(hwnd, SendMessageW(hwnd,
CB_SETITEMDATA, CB_SETITEMDATA,
index, index,
(LPARAM)MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN)); (LPARAM)MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN));
} }
else else
{ {
userLcid = lcid; userLcid = lcid;
GetLocaleInfo(lcid & 0xFFFF, LOCALE_SSORTNAME, lang, sizeof(lang)/sizeof(TCHAR)); GetLocaleInfoW(lcid & 0xFFFF, LOCALE_SSORTNAME, lang, sizeof(lang)/sizeof(WCHAR));
index = SendMessage(hWndSortList, index = SendMessageW(hWndSortList,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)lang); (LPARAM)lang);
SendMessage(hWndSortList, SendMessageW(hWndSortList,
CB_SETITEMDATA, CB_SETITEMDATA,
index, index,
(LPARAM)lcid & 0xFFFF); (LPARAM)lcid & 0xFFFF);
EnumSystemLocales(SortEnumProc, LCID_ALTERNATE_SORTS); EnumSystemLocalesW(SortEnumProc, LCID_ALTERNATE_SORTS);
} }
/* Select current locale */ /* Select current locale */
/* or should it be System and not user? */ /* or should it be System and not user? */
GetLocaleInfo(lcid, LOCALE_SSORTNAME, lang, sizeof(lang)/sizeof(TCHAR)); GetLocaleInfoW(lcid, LOCALE_SSORTNAME, lang, sizeof(lang)/sizeof(WCHAR));
SendMessage(hwnd, SendMessageW(hwnd,
CB_SELECTSTRING, CB_SELECTSTRING,
-1, -1,
(LPARAM)lang); (LPARAM)lang);
} }
/* Property page dialog callback */ /* Property page dialog callback */

View file

@ -28,9 +28,9 @@
static HWND hwndEnum = NULL; static HWND hwndEnum = NULL;
static BOOL CALLBACK static BOOL CALLBACK
TimeFormatEnumProc(LPTSTR lpTimeFormatString) TimeFormatEnumProc(PWSTR lpTimeFormatString)
{ {
SendMessage(hwndEnum, SendMessageW(hwndEnum,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)lpTimeFormatString); (LPARAM)lpTimeFormatString);
@ -41,15 +41,15 @@ TimeFormatEnumProc(LPTSTR lpTimeFormatString)
static VOID static VOID
UpdateTimeSample(HWND hWnd, LCID lcid) UpdateTimeSample(HWND hWnd, LCID lcid)
{ {
TCHAR szBuffer[80]; WCHAR szBuffer[80];
GetTimeFormat(lcid, 0, NULL, NULL, szBuffer, 80); GetTimeFormatW(lcid, 0, NULL, NULL, szBuffer, 80);
SendMessage(hWnd, WM_SETTEXT, 0, (LPARAM)szBuffer); SendDlgItemMessageW(hWnd, IDC_TIMESAMPLE, WM_SETTEXT, 0, (LPARAM)szBuffer);
} }
static VOID static VOID
GetSelectedComboEntry(HWND hwndDlg, DWORD dwIdc, TCHAR *Buffer, UINT uSize) GetSelectedComboEntry(HWND hwndDlg, DWORD dwIdc, WCHAR *Buffer, UINT uSize)
{ {
int nIndex; int nIndex;
HWND hChildWnd; HWND hChildWnd;
@ -57,24 +57,24 @@ GetSelectedComboEntry(HWND hwndDlg, DWORD dwIdc, TCHAR *Buffer, UINT uSize)
/* Get handle to time format control */ /* Get handle to time format control */
hChildWnd = GetDlgItem(hwndDlg, dwIdc); hChildWnd = GetDlgItem(hwndDlg, dwIdc);
/* Get index to selected time format */ /* Get index to selected time format */
nIndex = SendMessage(hChildWnd, CB_GETCURSEL, 0, 0); nIndex = SendMessageW(hChildWnd, CB_GETCURSEL, 0, 0);
if (nIndex == CB_ERR) if (nIndex == CB_ERR)
/* No selection? Get content of the edit control */ /* No selection? Get content of the edit control */
SendMessage(hChildWnd, WM_GETTEXT, uSize, (LPARAM)Buffer); SendMessageW(hChildWnd, WM_GETTEXT, uSize, (LPARAM)Buffer);
else { else {
LPTSTR tmp; PWSTR tmp;
UINT uReqSize; UINT uReqSize;
/* Get requested size, including the null terminator; /* Get requested size, including the null terminator;
* it shouldn't be required because the previous CB_LIMITTEXT, * it shouldn't be required because the previous CB_LIMITTEXT,
* but it would be better to check it anyways */ * but it would be better to check it anyways */
uReqSize = SendMessage(hChildWnd, CB_GETLBTEXTLEN, (WPARAM)nIndex, 0) + 1; uReqSize = SendMessageW(hChildWnd, CB_GETLBTEXTLEN, (WPARAM)nIndex, 0) + 1;
/* Allocate enough space to be more safe */ /* Allocate enough space to be more safe */
tmp = (LPTSTR)_alloca(uReqSize*sizeof(TCHAR)); tmp = (PWSTR)_alloca(uReqSize*sizeof(WCHAR));
/* Get selected time format text */ /* Get selected time format text */
SendMessage(hChildWnd, CB_GETLBTEXT, (WPARAM)nIndex, (LPARAM)tmp); SendMessageW(hChildWnd, CB_GETLBTEXT, (WPARAM)nIndex, (LPARAM)tmp);
/* Finally, copy the result into the output */ /* Finally, copy the result into the output */
_tcsncpy(Buffer, tmp, uSize); wcsncpy(Buffer, tmp, uSize);
} }
} }
@ -93,81 +93,81 @@ TimePageProc(HWND hwndDlg,
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
TCHAR Buffer[80]; WCHAR Buffer[80];
int nLen; int nLen;
pGlobalData = (PGLOBALDATA)((LPPROPSHEETPAGE)lParam)->lParam; pGlobalData = (PGLOBALDATA)((LPPROPSHEETPAGE)lParam)->lParam;
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData); SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
/* Update the time format sample */ /* Update the time format sample */
UpdateTimeSample(GetDlgItem(hwndDlg, IDC_TIMESAMPLE), pGlobalData->lcid); UpdateTimeSample(hwndDlg, pGlobalData->lcid);
/* Get the time format */ /* Get the time format */
SendMessage(GetDlgItem(hwndDlg, IDC_TIMEFORMAT), SendDlgItemMessageW(hwndDlg, IDC_TIMEFORMAT,
CB_LIMITTEXT, MAX_TIMEFORMAT, 0); CB_LIMITTEXT, MAX_TIMEFORMAT, 0);
/* Add available time formats to the list */ /* Add available time formats to the list */
hwndEnum = GetDlgItem(hwndDlg, IDC_TIMEFORMAT); hwndEnum = GetDlgItem(hwndDlg, IDC_TIMEFORMAT);
EnumTimeFormats(TimeFormatEnumProc, pGlobalData->lcid, 0); EnumTimeFormatsW(TimeFormatEnumProc, pGlobalData->lcid, 0);
GetLocaleInfo(pGlobalData->lcid, LOCALE_STIMEFORMAT, Buffer, sizeof(Buffer)/sizeof(TCHAR)); GetLocaleInfoW(pGlobalData->lcid, LOCALE_STIMEFORMAT, Buffer, sizeof(Buffer)/sizeof(WCHAR));
SendMessage(GetDlgItem(hwndDlg, IDC_TIMEFORMAT), SendDlgItemMessageW(hwndDlg, IDC_TIMEFORMAT,
CB_SELECTSTRING, CB_SELECTSTRING,
-1, -1,
(LPARAM)Buffer); (LPARAM)Buffer);
/* Get the time separator */ /* Get the time separator */
SendMessage(GetDlgItem(hwndDlg, IDC_TIMESEPARATOR), SendDlgItemMessageW(hwndDlg, IDC_TIMESEPARATOR,
CB_LIMITTEXT, MAX_TIMESEPARATOR, 0); CB_LIMITTEXT, MAX_TIMESEPARATOR, 0);
GetLocaleInfo(pGlobalData->lcid, LOCALE_STIME, Buffer, sizeof(Buffer)/sizeof(TCHAR)); GetLocaleInfoW(pGlobalData->lcid, LOCALE_STIME, Buffer, sizeof(Buffer)/sizeof(WCHAR));
SendMessage(GetDlgItem(hwndDlg, IDC_TIMESEPARATOR), SendDlgItemMessageW(hwndDlg, IDC_TIMESEPARATOR,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)Buffer); (LPARAM)Buffer);
SendMessage(GetDlgItem(hwndDlg, IDC_TIMESEPARATOR), SendDlgItemMessageW(hwndDlg, IDC_TIMESEPARATOR,
CB_SETCURSEL, CB_SETCURSEL,
0, /* Index */ 0, /* Index */
0); 0);
/* Get the AM symbol */ /* Get the AM symbol */
SendMessage(GetDlgItem(hwndDlg, IDC_TIMEAMSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_TIMEAMSYMBOL,
CB_LIMITTEXT, MAX_TIMEAMSYMBOL, 0); CB_LIMITTEXT, MAX_TIMEAMSYMBOL, 0);
nLen = GetLocaleInfo(pGlobalData->lcid, LOCALE_S1159, Buffer, sizeof(Buffer)/sizeof(TCHAR)); nLen = GetLocaleInfoW(pGlobalData->lcid, LOCALE_S1159, Buffer, sizeof(Buffer)/sizeof(WCHAR));
SendMessage(GetDlgItem(hwndDlg, IDC_TIMEAMSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_TIMEAMSYMBOL,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)Buffer); (LPARAM)Buffer);
if (nLen != 0) if (nLen != 0)
{ {
SendMessage(GetDlgItem(hwndDlg, IDC_TIMEAMSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_TIMEAMSYMBOL,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)_T("")); (LPARAM)L"");
} }
SendMessage(GetDlgItem(hwndDlg, IDC_TIMEAMSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_TIMEAMSYMBOL,
CB_SETCURSEL, CB_SETCURSEL,
0, /* Index */ 0, /* Index */
0); 0);
/* Get the PM symbol */ /* Get the PM symbol */
SendMessage(GetDlgItem(hwndDlg, IDC_TIMEPMSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_TIMEPMSYMBOL,
CB_LIMITTEXT, MAX_TIMEPMSYMBOL, 0); CB_LIMITTEXT, MAX_TIMEPMSYMBOL, 0);
nLen = GetLocaleInfo(pGlobalData->lcid, LOCALE_S2359, Buffer, sizeof(Buffer)/sizeof(TCHAR)); nLen = GetLocaleInfoW(pGlobalData->lcid, LOCALE_S2359, Buffer, sizeof(Buffer)/sizeof(WCHAR));
SendMessage(GetDlgItem(hwndDlg, IDC_TIMEPMSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_TIMEPMSYMBOL,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)Buffer); (LPARAM)Buffer);
if (nLen != 0) if (nLen != 0)
{ {
SendMessage(GetDlgItem(hwndDlg, IDC_TIMEPMSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_TIMEPMSYMBOL,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)_T("")); (LPARAM)L"");
} }
SendMessage(GetDlgItem(hwndDlg, IDC_TIMEPMSYMBOL), SendDlgItemMessageW(hwndDlg, IDC_TIMEPMSYMBOL,
CB_SETCURSEL, CB_SETCURSEL,
0, /* Index */ 0, /* Index */
0); 0);
} }
break; break;
@ -193,34 +193,34 @@ TimePageProc(HWND hwndDlg,
if (lpnm->code == (UINT)PSN_APPLY) if (lpnm->code == (UINT)PSN_APPLY)
{ {
TCHAR Buffer[80]; WCHAR Buffer[80];
/* Get selected/typed time format text */ /* Get selected/typed time format text */
GetSelectedComboEntry(hwndDlg, IDC_TIMEFORMAT, Buffer, sizeof(Buffer)/sizeof(TCHAR)); GetSelectedComboEntry(hwndDlg, IDC_TIMEFORMAT, Buffer, sizeof(Buffer)/sizeof(WCHAR));
/* Set time format */ /* Set time format */
SetLocaleInfo(pGlobalData->lcid, LOCALE_STIMEFORMAT, Buffer); SetLocaleInfoW(pGlobalData->lcid, LOCALE_STIMEFORMAT, Buffer);
/* Get selected/typed time separator text */ /* Get selected/typed time separator text */
GetSelectedComboEntry(hwndDlg, IDC_TIMESEPARATOR, Buffer, sizeof(Buffer)/sizeof(TCHAR)); GetSelectedComboEntry(hwndDlg, IDC_TIMESEPARATOR, Buffer, sizeof(Buffer)/sizeof(WCHAR));
/* Set time separator */ /* Set time separator */
SetLocaleInfo(pGlobalData->lcid, LOCALE_STIME, Buffer); SetLocaleInfoW(pGlobalData->lcid, LOCALE_STIME, Buffer);
/* Get selected/typed AM symbol text */ /* Get selected/typed AM symbol text */
GetSelectedComboEntry(hwndDlg, IDC_TIMEAMSYMBOL, Buffer, sizeof(Buffer)/sizeof(TCHAR)); GetSelectedComboEntry(hwndDlg, IDC_TIMEAMSYMBOL, Buffer, sizeof(Buffer)/sizeof(WCHAR));
/* Set the AM symbol */ /* Set the AM symbol */
SetLocaleInfo(pGlobalData->lcid, LOCALE_S1159, Buffer); SetLocaleInfoW(pGlobalData->lcid, LOCALE_S1159, Buffer);
/* Get selected/typed PM symbol text */ /* Get selected/typed PM symbol text */
GetSelectedComboEntry(hwndDlg, IDC_TIMEPMSYMBOL, Buffer, sizeof(Buffer)/sizeof(TCHAR)); GetSelectedComboEntry(hwndDlg, IDC_TIMEPMSYMBOL, Buffer, sizeof(Buffer)/sizeof(WCHAR));
/* Set the PM symbol */ /* Set the PM symbol */
SetLocaleInfo(pGlobalData->lcid, LOCALE_S2359, Buffer); SetLocaleInfoW(pGlobalData->lcid, LOCALE_S2359, Buffer);
/* Update the time format sample */ /* Update the time format sample */
UpdateTimeSample(GetDlgItem(hwndDlg, IDC_TIMESAMPLE), pGlobalData->lcid); UpdateTimeSample(hwndDlg, pGlobalData->lcid);
} }
} }
break; break;