Handle WM_INPUTLANGCHANGE and WM_INPUTLANGCHANGEREQUEST in DefWindowProc.

svn path=/trunk/; revision=25880
This commit is contained in:
Saveliy Tretiakov 2007-02-22 19:43:27 +00:00
parent da13fb5a41
commit 50b11bc313
2 changed files with 33 additions and 1 deletions

View file

@ -987,6 +987,8 @@ DefWndScreenshot(HWND hWnd)
}
LRESULT STDCALL
User32DefWindowProc(HWND hWnd,
UINT Msg,
@ -1522,7 +1524,34 @@ User32DefWindowProc(HWND hWnd,
{
return (1);
}
case WM_INPUTLANGCHANGEREQUEST:
{
HKL NewHkl;
if(wParam & INPUTLANGCHANGE_BACKWARD
&& wParam & INPUTLANGCHANGE_FORWARD)
{
return FALSE;
}
//FIXME: What to do with INPUTLANGCHANGE_SYSCHARSET ?
if(wParam & INPUTLANGCHANGE_BACKWARD) NewHkl = HKL_PREV;
else if(wParam & INPUTLANGCHANGE_FORWARD) NewHkl = HKL_NEXT;
else NewHkl = lParam;
NtUserActivateKeyboardLayout(NewHkl, 0);
return TRUE;
}
case WM_INPUTLANGCHANGE:
{
//FIXME: What to do?
return TRUE;
}
case WM_ENDSESSION:
if (wParam) PostQuitMessage(0);
return 0;

View file

@ -90,6 +90,9 @@ extern "C" {
#define KLF_NOTELLSHELL 128
#define KLF_SETFORPROCESS 256
#define KL_NAMELENGTH 9
#define INPUTLANGCHANGE_BACKWARD 4
#define INPUTLANGCHANGE_FORWARD 2
#define INPUTLANGCHANGE_SYSCHARSET 1
#define MF_ENABLED 0
#define MF_GRAYED 1
#define MF_DISABLED 2