Implemented GetKeyState, GetKeyboardState & SetKeyboardState.

svn path=/trunk/; revision=5179
This commit is contained in:
James Tabor 2003-07-20 05:32:19 +00:00
parent 06f059499a
commit 3c46b3026a
5 changed files with 58 additions and 40 deletions

View file

@ -1,3 +1,11 @@
2003-07-20 James Tabor <jimtabor@adsl-64-217-116-74.dsl.hstntx.swbell.net>
* include/win32k/ntuser.h Implemented GetKeyState, GetKeyboardState &
SetKeyboardState.
* subsys/win32k/ntuser/stubs.c
* subsys/win32k/ntuser/keyboard.c
* lib/user32/windows/input.c
2003-07-20 James Tabor <jimtabor@adsl-64-217-116-74.dsl.hstntx.swbell.net>
* lib/gdi32/misc/stubs.c Implemented Unpluged DC code.

View file

@ -698,7 +698,7 @@ NtUserGetKeyboardLayoutName(
DWORD
STDCALL
NtUserGetKeyboardState(
DWORD Unknown0);
LPBYTE Unknown0);
DWORD
STDCALL
@ -1309,7 +1309,7 @@ NtUserSetInternalWindowPos(
DWORD
STDCALL
NtUserSetKeyboardState(
DWORD Unknown0);
LPBYTE Unknown0);
DWORD
STDCALL

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: input.c,v 1.8 2003/07/10 21:04:32 chorns Exp $
/* $Id: input.c,v 1.9 2003/07/20 05:32:19 jimtabor Exp $
*
* PROJECT: ReactOS user32.dll
* FILE: lib/user32/windows/input.c
@ -144,8 +144,7 @@ GetKeyNameTextW(LONG lParam,
SHORT STDCALL
GetKeyState(int nVirtKey)
{
UNIMPLEMENTED;
return 0;
return (SHORT) NtUserGetKeyState((DWORD) nVirtKey);
}
@ -189,8 +188,8 @@ GetKeyboardLayoutNameW(LPWSTR pwszKLID)
WINBOOL STDCALL
GetKeyboardState(PBYTE lpKeyState)
{
UNIMPLEMENTED;
return FALSE;
return (WINBOOL) NtUserGetKeyboardState((LPBYTE) lpKeyState);
}
@ -317,8 +316,7 @@ SetFocus(HWND hWnd)
WINBOOL STDCALL
SetKeyboardState(LPBYTE lpKeyState)
{
UNIMPLEMENTED;
return FALSE;
return (WINBOOL) NtUserSetKeyboardState((LPBYTE)lpKeyState);
}

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: keyboard.c,v 1.4 2003/07/05 16:04:01 chorns Exp $
/* $Id: keyboard.c,v 1.5 2003/07/20 05:32:19 jimtabor Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -31,6 +31,7 @@
#include <ddk/ntddk.h>
#include <win32k/win32k.h>
#include <internal/safe.h>
#include <include/guicheck.h>
#include <include/msgqueue.h>
#include <include/window.h>
@ -246,4 +247,44 @@ NtUserSetFocus(HWND hWnd)
return W32kSetFocusWindow(hWnd);
}
DWORD
STDCALL
NtUserGetKeyState(
DWORD key)
{
DWORD ret;
if (key >= 'a' && key <= 'z') key += 'A' - 'a';
ret = ((DWORD)(QueueKeyStateTable[key] & 0x80) << 8 ) |
(QueueKeyStateTable[key] & 0x80) |
(QueueKeyStateTable[key] & 0x01);
return ret;
}
DWORD
STDCALL
NtUserGetKeyboardState(
LPBYTE lpKeyState)
{
if (lpKeyState) {
if(!NT_SUCCESS(MmCopyToCaller(lpKeyState, QueueKeyStateTable, 256)))
return FALSE;
}
return TRUE;
}
DWORD
STDCALL
NtUserSetKeyboardState(
LPBYTE lpKeyState)
{
if (lpKeyState) {
if(! NT_SUCCESS(MmCopyFromCaller(QueueKeyStateTable, lpKeyState, 256)))
return FALSE;
}
return TRUE;
}
/* EOF */

View file

@ -1,4 +1,4 @@
/* $Id: stubs.c,v 1.15 2003/07/19 04:10:30 royce Exp $
/* $Id: stubs.c,v 1.16 2003/07/20 05:32:19 jimtabor Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -779,16 +779,6 @@ NtUserGetKeyboardLayoutName(
return 0;
}
DWORD
STDCALL
NtUserGetKeyboardState(
DWORD Unknown0)
{
UNIMPLEMENTED
return 0;
}
DWORD
STDCALL
NtUserGetKeyNameText(
@ -801,16 +791,6 @@ NtUserGetKeyNameText(
return 0;
}
DWORD
STDCALL
NtUserGetKeyState(
DWORD Unknown0)
{
UNIMPLEMENTED
return 0;
}
DWORD
STDCALL
NtUserGetListBoxInfo(
@ -1276,15 +1256,6 @@ NtUserSetImeHotKey(
return 0;
}
DWORD
STDCALL
NtUserSetKeyboardState(
DWORD Unknown0)
{
UNIMPLEMENTED
return 0;
}
DWORD
STDCALL