- 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
WINAPI
RealGetQueueStatus(UINT flags)
{
DWORD ret;
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);
return NtUserCallOneParam(flags, ONEPARAM_ROUTINE_GETQUEUESTATUS);
}
/*
* @unimplemented
* @implemented
*/
BOOL WINAPI GetInputState(VOID)
{
DWORD ret;
WORD wake_bits;
PCLIENTTHREADINFO pcti = GetWin32ClientInfo()->pClientThreadInfo;
#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(FALSE, ONEPARAM_ROUTINE_GETQUEUESTATUS);
wake_bits = HIWORD(ret);
return wake_bits & (QS_KEY | QS_MOUSEBUTTON);
if ((!pcti) || (pcti->fsChangeBits & (QS_KEY|QS_MOUSEBUTTON)))
return (BOOL)NtUserGetThreadState(THREADSTATE_GETINPUTSTATE);
return FALSE;
}

View file

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

View file

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

View file

@ -397,8 +397,14 @@ NtUserCallOneParam(
RETURN (UserRealizePalette((HDC) Param));
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:
/* FIXME: Should use UserEnterShared */
RETURN(IntEnumClipboardFormats(Param));