mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 19:21:38 +00:00
[User32|Win32k]
- Update NtUser pump functions, based on known values. Move one more function to the right place. svn path=/trunk/; revision=51201
This commit is contained in:
parent
f42a29cf5c
commit
0d6b3c7ebd
4 changed files with 94 additions and 95 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 &&
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue