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

View file

@ -1,10 +1,8 @@
<?xml version="1.0"?>
<!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" />
<include base="input">.</include>
<define name="UNICODE" />
<define name="_UNICODE" />
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x600</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_INFO_ICO ICON "resources/information.ico"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#include "rsrc.rc"

View file

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

View file

@ -46,10 +46,14 @@ BOOL
CreateDefaultLangList(HWND hWnd)
{
HKEY hKey;
char szPreload[BUFSIZE],szCount[BUFSIZE],Lang[BUFSIZE];
DWORD dwBufLen = BUFSIZE, dwBufCLen = BUFSIZE, cValues;
TCHAR szPreload[BUFSIZE];
TCHAR szCount[BUFSIZE];
TCHAR Lang[BUFSIZE];
DWORD dwBufLen;
DWORD dwBufCLen;
DWORD cValues;
LONG lRet;
int Count;
INT Count;
LCID Lcid;
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++)
{
szCount[0] = '\0';
szCount[0] = TEXT('\0');
dwBufCLen = BUFSIZE;
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);
Lcid = wcstoul((LPTSTR)szPreload, NULL, 16);
Lcid = _tcstoul(szPreload, NULL, 16);
GetLocaleInfo(Lcid, LOCALE_SLANGUAGE, (LPTSTR)Lang, sizeof(Lang));
SendMessage(hWnd,