diff --git a/reactos/include/reactos/win32k/ntuser.h b/reactos/include/reactos/win32k/ntuser.h index b6e2d8339ef..71ea1772fc6 100644 --- a/reactos/include/reactos/win32k/ntuser.h +++ b/reactos/include/reactos/win32k/ntuser.h @@ -2404,28 +2404,28 @@ NtUserQueryWindow( HWND hWnd, DWORD Index); -DWORD +BOOL NTAPI NtUserRealInternalGetMessage( - DWORD dwUnknown1, - DWORD dwUnknown2, - DWORD dwUnknown3, - DWORD dwUnknown4, - DWORD dwUnknown5, - DWORD dwUnknown6); + LPMSG lpMsg, + HWND hWnd, + UINT wMsgFilterMin, + UINT wMsgFilterMax, + UINT wRemoveMsg, + BOOL bGMSG); -DWORD +HWND NTAPI NtUserRealChildWindowFromPoint( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2); + HWND Parent, + LONG x, + LONG y); -DWORD +BOOL NTAPI NtUserRealWaitMessageEx( - DWORD dwUnknown1, - DWORD dwUnknown2); + DWORD dwWakeMask, + UINT uTimeout); BOOL NTAPI diff --git a/reactos/subsystems/win32/win32k/ntuser/ntstubs.c b/reactos/subsystems/win32/win32k/ntuser/ntstubs.c index c0834596f81..06b84793c87 100644 --- a/reactos/subsystems/win32/win32k/ntuser/ntstubs.c +++ b/reactos/subsystems/win32/win32k/ntuser/ntstubs.c @@ -935,25 +935,25 @@ NtUserQueryInputContext( return 0; } -DWORD +BOOL APIENTRY NtUserRealInternalGetMessage( - DWORD dwUnknown1, - DWORD dwUnknown2, - DWORD dwUnknown3, - DWORD dwUnknown4, - DWORD dwUnknown5, - DWORD dwUnknown6) + LPMSG lpMsg, + HWND hWnd, + UINT wMsgFilterMin, + UINT wMsgFilterMax, + UINT wRemoveMsg, + BOOL bGMSG) { UNIMPLEMENTED; return 0; } -DWORD +BOOL APIENTRY NtUserRealWaitMessageEx( - DWORD dwUnknown1, - DWORD dwUnknown2) + DWORD dwWakeMask, + UINT uTimeout) { UNIMPLEMENTED; return 0; @@ -1252,10 +1252,10 @@ NtUserLockWindowUpdate(HWND hWnd) /* * @unimplemented */ -DWORD APIENTRY -NtUserRealChildWindowFromPoint(DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2) +HWND APIENTRY +NtUserRealChildWindowFromPoint(HWND Parent, + LONG x, + LONG y) { UNIMPLEMENTED diff --git a/reactos/subsystems/win32/win32k/ntuser/window.c b/reactos/subsystems/win32/win32k/ntuser/window.c index 72d232b5393..acd8a1aa14b 100644 --- a/reactos/subsystems/win32/win32k/ntuser/window.c +++ b/reactos/subsystems/win32/win32k/ntuser/window.c @@ -1478,73 +1478,6 @@ NtUserBuildHwndList( return STATUS_SUCCESS; } - -/* - * @implemented - */ -HWND APIENTRY -NtUserChildWindowFromPointEx(HWND hwndParent, - LONG x, - LONG y, - UINT uiFlags) -{ - PWND Parent; - POINTL Pt; - HWND Ret; - HWND *List, *phWnd; - - if(!(Parent = UserGetWindowObject(hwndParent))) - { - return NULL; - } - - Pt.x = x; - Pt.y = y; - - if(Parent->head.h != IntGetDesktopWindow()) - { - Pt.x += Parent->rcClient.left; - Pt.y += Parent->rcClient.top; - } - - if(!IntPtInWindow(Parent, Pt.x, Pt.y)) - { - return NULL; - } - - Ret = Parent->head.h; - if((List = IntWinListChildren(Parent))) - { - for(phWnd = List; *phWnd; phWnd++) - { - PWND Child; - if((Child = UserGetWindowObject(*phWnd))) - { - if(!(Child->style & WS_VISIBLE) && (uiFlags & CWP_SKIPINVISIBLE)) - { - continue; - } - if((Child->style & WS_DISABLED) && (uiFlags & CWP_SKIPDISABLED)) - { - continue; - } - if((Child->ExStyle & WS_EX_TRANSPARENT) && (uiFlags & CWP_SKIPTRANSPARENT)) - { - continue; - } - if(IntPtInWindow(Child, Pt.x, Pt.y)) - { - Ret = Child->head.h; - break; - } - } - } - ExFreePool(List); - } - - return Ret; -} - static void IntSendParentNotify( PWND pWindow, UINT msg ) { if ( (pWindow->style & (WS_CHILD | WS_POPUP)) == WS_CHILD && diff --git a/reactos/subsystems/win32/win32k/ntuser/winpos.c b/reactos/subsystems/win32/win32k/ntuser/winpos.c index 3934dcb21b6..7b9a6f6fa44 100644 --- a/reactos/subsystems/win32/win32k/ntuser/winpos.c +++ b/reactos/subsystems/win32/win32k/ntuser/winpos.c @@ -1797,6 +1797,72 @@ BOOL FASTCALL IntEndDeferWindowPosEx( HDWP hdwp ) return res; } +/* + * @implemented + */ +HWND APIENTRY +NtUserChildWindowFromPointEx(HWND hwndParent, + LONG x, + LONG y, + UINT uiFlags) +{ + PWND Parent; + POINTL Pt; + HWND Ret; + HWND *List, *phWnd; + + if(!(Parent = UserGetWindowObject(hwndParent))) + { + return NULL; + } + + Pt.x = x; + Pt.y = y; + + if(Parent->head.h != IntGetDesktopWindow()) + { + Pt.x += Parent->rcClient.left; + Pt.y += Parent->rcClient.top; + } + + if(!IntPtInWindow(Parent, Pt.x, Pt.y)) + { + return NULL; + } + + Ret = Parent->head.h; + if((List = IntWinListChildren(Parent))) + { + for(phWnd = List; *phWnd; phWnd++) + { + PWND Child; + if((Child = UserGetWindowObject(*phWnd))) + { + if(!(Child->style & WS_VISIBLE) && (uiFlags & CWP_SKIPINVISIBLE)) + { + continue; + } + if((Child->style & WS_DISABLED) && (uiFlags & CWP_SKIPDISABLED)) + { + continue; + } + if((Child->ExStyle & WS_EX_TRANSPARENT) && (uiFlags & CWP_SKIPTRANSPARENT)) + { + continue; + } + if(IntPtInWindow(Child, Pt.x, Pt.y)) + { + Ret = Child->head.h; + break; + } + } + } + ExFreePool(List); + } + + return Ret; +} + /* * @implemented */