Make it UNICODE-safe.

svn path=/trunk/; revision=29713
This commit is contained in:
Eric Kohl 2007-10-20 15:03:15 +00:00
parent 47fe787a9e
commit 698fbca4a1
5 changed files with 31 additions and 26 deletions

View file

@ -72,12 +72,12 @@ LanguagesEnumProc(LPTSTR lpLanguage)
{ {
LCID Lcid; LCID Lcid;
TCHAR Lang[1024]; TCHAR Lang[1024];
int Index; INT Index;
Lcid = wcstoul(lpLanguage, NULL, 16); Lcid = _tcstoul(lpLanguage, NULL, 16);
GetLocaleInfo(Lcid, LOCALE_SLANGUAGE, Lang, sizeof(Lang)); GetLocaleInfo(Lcid, LOCALE_SLANGUAGE, Lang, sizeof(Lang));
Index = (int) SendMessage(hLanguageList, Index = (INT)SendMessage(hLanguageList,
CB_ADDSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)Lang); (LPARAM)Lang);
@ -96,13 +96,14 @@ VOID
CreateLanguagesList(HWND hWnd) CreateLanguagesList(HWND hWnd)
{ {
TCHAR LangSel[256]; TCHAR LangSel[256];
hLanguageList = hWnd; hLanguageList = hWnd;
EnumSystemLocales(LanguagesEnumProc, LCID_INSTALLED); EnumSystemLocales(LanguagesEnumProc, LCID_INSTALLED);
LoadString(hApplet, LoadString(hApplet,
IDS_SELECTED_LANGUAGE, IDS_SELECTED_LANGUAGE,
LangSel, LangSel,
sizeof(LangSel) / sizeof(TCHAR)); 256);
SendMessage(hLanguageList, SendMessage(hLanguageList,
CB_SELECTSTRING, CB_SELECTSTRING,
@ -119,7 +120,7 @@ SelectCurrentLayout(HWND hWnd)
LoadString(hApplet, LoadString(hApplet,
IDS_SELECTED_LAYOUT, IDS_SELECTED_LAYOUT,
Layout, Layout,
sizeof(Layout) / sizeof(TCHAR)); 256);
SendMessage(hWnd, SendMessage(hWnd,
CB_SELECTSTRING, CB_SELECTSTRING,
(WPARAM) -1, (WPARAM) -1,

View file

@ -1,10 +1,8 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="input" type="win32dll" extension=".dll" baseaddress="${BASEADDRESS_INPUT}" installbase="system32" installname="input.dll"> <module name="input" type="win32dll" extension=".dll" baseaddress="${BASEADDRESS_INPUT}" installbase="system32" installname="input.dll" unicode="yes">
<importlibrary definition="input.def" /> <importlibrary definition="input.def" />
<include base="input">.</include> <include base="input">.</include>
<define name="UNICODE" />
<define name="_UNICODE" />
<define name="__USE_W32API" /> <define name="__USE_W32API" />
<define name="_WIN32_IE">0x600</define> <define name="_WIN32_IE">0x600</define>
<define name="_WIN32_WINNT">0x501</define> <define name="_WIN32_WINNT">0x501</define>

View file

@ -21,6 +21,4 @@ IDI_MIC_ICO ICON "resources/microphone.ico"
IDI_KEY_SHORT_ICO ICON "resources/keyboard-shortcuts.ico" IDI_KEY_SHORT_ICO ICON "resources/keyboard-shortcuts.ico"
IDI_INFO_ICO ICON "resources/information.ico" IDI_INFO_ICO ICON "resources/information.ico"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#include "rsrc.rc" #include "rsrc.rc"

View file

@ -43,7 +43,7 @@ VOID
CreateKeyboardLayoutList(HWND hWnd) CreateKeyboardLayoutList(HWND hWnd)
{ {
TCHAR Layout[256]; TCHAR Layout[256];
int Index; INT Index;
UINT loIndex; UINT loIndex;
for (loIndex = BEGIN_LAYOUT; loIndex <= END_LAYOUT; loIndex++) for (loIndex = BEGIN_LAYOUT; loIndex <= END_LAYOUT; loIndex++)
@ -51,12 +51,12 @@ CreateKeyboardLayoutList(HWND hWnd)
LoadString(hApplet, LoadString(hApplet,
loIndex, loIndex,
Layout, Layout,
sizeof(Layout) / sizeof(TCHAR)); 256);
if (strlen((char*)Layout) > 0) if (_tcslen(Layout) > 0)
{ {
Index = (int) SendMessage(hWnd, Index = (int) SendMessage(hWnd,
CB_INSERTSTRING, CB_ADDSTRING,
0, 0,
(LPARAM)Layout); (LPARAM)Layout);

View file

@ -46,10 +46,14 @@ BOOL
CreateDefaultLangList(HWND hWnd) CreateDefaultLangList(HWND hWnd)
{ {
HKEY hKey; HKEY hKey;
char szPreload[BUFSIZE],szCount[BUFSIZE],Lang[BUFSIZE]; TCHAR szPreload[BUFSIZE];
DWORD dwBufLen = BUFSIZE, dwBufCLen = BUFSIZE, cValues; TCHAR szCount[BUFSIZE];
TCHAR Lang[BUFSIZE];
DWORD dwBufLen;
DWORD dwBufCLen;
DWORD cValues;
LONG lRet; LONG lRet;
int Count; INT Count;
LCID Lcid; LCID Lcid;
if(RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Keyboard Layout\\Preload"), 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS) if(RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Keyboard Layout\\Preload"), 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
@ -63,13 +67,17 @@ CreateDefaultLangList(HWND hWnd)
{ {
for (Count = 0; Count < cValues; Count++) for (Count = 0; Count < cValues; Count++)
{ {
szCount[0] = '\0'; szCount[0] = TEXT('\0');
dwBufCLen = BUFSIZE;
lRet = RegEnumValue(hKey,Count,(LPTSTR)szCount,&dwBufCLen,NULL,NULL,NULL,NULL); lRet = RegEnumValue(hKey,Count,(LPTSTR)szCount,&dwBufCLen,NULL,NULL,NULL,NULL);
sprintf(szCount,"%d",Count + 1); _stprintf(szCount,TEXT("%d"),Count + 1);
dwBufLen = BUFSIZE;
RegQueryValueEx(hKey,(LPTSTR)szCount,NULL,NULL,(LPBYTE)szPreload,&dwBufLen); RegQueryValueEx(hKey,(LPTSTR)szCount,NULL,NULL,(LPBYTE)szPreload,&dwBufLen);
Lcid = wcstoul((LPTSTR)szPreload, NULL, 16); Lcid = _tcstoul(szPreload, NULL, 16);
GetLocaleInfo(Lcid, LOCALE_SLANGUAGE, (LPTSTR)Lang, sizeof(Lang)); GetLocaleInfo(Lcid, LOCALE_SLANGUAGE, (LPTSTR)Lang, sizeof(Lang));
SendMessage(hWnd, SendMessage(hWnd,