mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 04:13:34 +00:00
[win32k]
- Use ONEPARAM_ROUTINE_GETCURSORPOS instead of ONEPARAM_ROUTINE_GETCURSORPOSITION in GetCursorPos - Correctly check if the current thread belongs to the active desktop svn path=/trunk/; revision=57657
This commit is contained in:
@@ -3251,7 +3251,6 @@ typedef struct tagKMDDELPARAM
|
||||
#define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
|
||||
#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
|
||||
#define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
|
||||
#define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
|
||||
#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
|
||||
#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
|
||||
#define MSQ_STATE_CAPTURE 0x1
|
||||
|
||||
@@ -26,7 +26,7 @@ IntFreeDesktopHeap(IN PDESKTOP pdesk);
|
||||
/* GLOBALS *******************************************************************/
|
||||
|
||||
/* Currently active desktop */
|
||||
PDESKTOP InputDesktop = NULL;
|
||||
PDESKTOP gpdeskInputDesktop = NULL;
|
||||
HDESK InputDesktopHandle = NULL;
|
||||
HDC ScreenDeviceContext = NULL;
|
||||
PTHREADINFO gptiDesktopThread;
|
||||
@@ -420,7 +420,7 @@ IntValidateDesktopHandle(
|
||||
PDESKTOP FASTCALL
|
||||
IntGetActiveDesktop(VOID)
|
||||
{
|
||||
return InputDesktop;
|
||||
return gpdeskInputDesktop;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1654,7 +1654,7 @@ NtUserSwitchDesktop(HDESK hdesk)
|
||||
InputWindowStation->ActiveDesktop = pdesk;
|
||||
|
||||
/* Set the global state. */
|
||||
InputDesktop = pdesk;
|
||||
gpdeskInputDesktop = pdesk;
|
||||
InputDesktopHandle = hdesk;
|
||||
TRACE("SwitchDesktop InputDesktopHandle 0x%p\n",InputDesktopHandle);
|
||||
ObDereferenceObject(pdesk);
|
||||
|
||||
@@ -259,25 +259,6 @@ NtUserCallOneParam(
|
||||
RETURN(Result);
|
||||
}
|
||||
|
||||
case ONEPARAM_ROUTINE_GETCURSORPOSITION:
|
||||
{
|
||||
BOOL ret = TRUE;
|
||||
|
||||
_SEH2_TRY
|
||||
{
|
||||
ProbeForWrite((POINT*)Param,sizeof(POINT),1);
|
||||
RtlCopyMemory((POINT*)Param,&gpsi->ptCursor,sizeof(POINT));
|
||||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
SetLastNtError(_SEH2_GetExceptionCode());
|
||||
ret = FALSE;
|
||||
}
|
||||
_SEH2_END;
|
||||
|
||||
RETURN (ret);
|
||||
}
|
||||
|
||||
case ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING:
|
||||
{
|
||||
BOOL Enable;
|
||||
@@ -334,9 +315,10 @@ NtUserCallOneParam(
|
||||
BOOL Ret = TRUE;
|
||||
PPOINTL pptl;
|
||||
PTHREADINFO pti = PsGetCurrentThreadWin32Thread();
|
||||
if (pti->hdesk != InputDesktopHandle) RETURN(FALSE);
|
||||
if (pti->rpdesk != IntGetActiveDesktop()) RETURN(FALSE);
|
||||
_SEH2_TRY
|
||||
{
|
||||
ProbeForWrite((POINT*)Param,sizeof(POINT),1);
|
||||
pptl = (PPOINTL)Param;
|
||||
*pptl = gpsi->ptCursor;
|
||||
}
|
||||
|
||||
@@ -806,7 +806,7 @@ EXTINLINE PVOID NtUserxGetDesktopMapping(PVOID ptr)
|
||||
|
||||
EXTINLINE BOOL NtUserxGetCursorPos(POINT* lpPoint)
|
||||
{
|
||||
return (BOOL)NtUserCallOneParam((DWORD_PTR)lpPoint, ONEPARAM_ROUTINE_GETCURSORPOSITION);
|
||||
return (BOOL)NtUserCallOneParam((DWORD_PTR)lpPoint, ONEPARAM_ROUTINE_GETCURSORPOS);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxSetMenuBarHeight(HMENU menu, INT height)
|
||||
|
||||
Reference in New Issue
Block a user