- Cleanup Real/GetInputState.

svn path=/trunk/; revision=40981
This commit is contained in:
James Tabor 2009-05-19 15:47:16 +00:00
parent 1c47f20400
commit 6dd2853afa
4 changed files with 21 additions and 35 deletions

View file

@ -2198,51 +2198,27 @@ ReleaseCapture(VOID)
/* /*
* @unimplemented * @implemented
*/ */
DWORD DWORD
WINAPI WINAPI
RealGetQueueStatus(UINT flags) RealGetQueueStatus(UINT flags)
{ {
DWORD ret; return NtUserCallOneParam(flags, ONEPARAM_ROUTINE_GETQUEUESTATUS);
WORD changed_bits, wake_bits;
#if 0 /* wine stuff. don't know what it does... */
/* check for pending X events */
if (USER_Driver.pMsgWaitForMultipleObjectsEx)
USER_Driver.pMsgWaitForMultipleObjectsEx( 0, NULL, 0, 0, 0 );
#endif
ret = NtUserCallOneParam(TRUE, ONEPARAM_ROUTINE_GETQUEUESTATUS);
changed_bits = LOWORD(ret);
wake_bits = HIWORD(ret);
return MAKELONG(changed_bits & flags, wake_bits & flags);
} }
/* /*
* @unimplemented * @implemented
*/ */
BOOL WINAPI GetInputState(VOID) BOOL WINAPI GetInputState(VOID)
{ {
DWORD ret; PCLIENTTHREADINFO pcti = GetWin32ClientInfo()->pClientThreadInfo;
WORD wake_bits;
#if 0 /* wine stuff. don't know what it does... */ if ((!pcti) || (pcti->fsChangeBits & (QS_KEY|QS_MOUSEBUTTON)))
return (BOOL)NtUserGetThreadState(THREADSTATE_GETINPUTSTATE);
/* check for pending X events */ return FALSE;
if (USER_Driver.pMsgWaitForMultipleObjectsEx)
USER_Driver.pMsgWaitForMultipleObjectsEx( 0, NULL, 0, 0, 0 );
#endif
ret = NtUserCallOneParam(FALSE, ONEPARAM_ROUTINE_GETQUEUESTATUS);
wake_bits = HIWORD(ret);
return wake_bits & (QS_KEY | QS_MOUSEBUTTON);
} }

View file

@ -1718,7 +1718,8 @@ enum ThreadStateRoutines
THREADSTATE_CAPTUREWINDOW, THREADSTATE_CAPTUREWINDOW,
THREADSTATE_PROGMANWINDOW, THREADSTATE_PROGMANWINDOW,
THREADSTATE_TASKMANWINDOW, THREADSTATE_TASKMANWINDOW,
THREADSTATE_GETMESSAGETIME THREADSTATE_GETMESSAGETIME,
THREADSTATE_GETINPUTSTATE
}; };
DWORD DWORD

View file

@ -118,6 +118,9 @@ NtUserGetThreadState(
case THREADSTATE_GETMESSAGETIME: case THREADSTATE_GETMESSAGETIME:
/* FIXME Needs more work! */ /* FIXME Needs more work! */
RETURN( ((PTHREADINFO)PsGetCurrentThreadWin32Thread())->timeLast); RETURN( ((PTHREADINFO)PsGetCurrentThreadWin32Thread())->timeLast);
case THREADSTATE_GETINPUTSTATE:
RETURN( HIWORD(IntGetQueueStatus(FALSE)) & (QS_KEY | QS_MOUSEBUTTON));
} }
RETURN( 0); RETURN( 0);

View file

@ -397,8 +397,14 @@ NtUserCallOneParam(
RETURN (UserRealizePalette((HDC) Param)); RETURN (UserRealizePalette((HDC) Param));
case ONEPARAM_ROUTINE_GETQUEUESTATUS: case ONEPARAM_ROUTINE_GETQUEUESTATUS:
RETURN (IntGetQueueStatus((BOOL) Param)); {
DWORD Ret;
WORD changed_bits, wake_bits;
Ret = IntGetQueueStatus(FALSE);
changed_bits = LOWORD(Ret);
wake_bits = HIWORD(Ret);
RETURN( MAKELONG(changed_bits & Param, wake_bits & Param));
}
case ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS: case ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS:
/* FIXME: Should use UserEnterShared */ /* FIXME: Should use UserEnterShared */
RETURN(IntEnumClipboardFormats(Param)); RETURN(IntEnumClipboardFormats(Param));