mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 15:52:57 +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,
|
HWND hWnd,
|
||||||
DWORD Index);
|
DWORD Index);
|
||||||
|
|
||||||
DWORD
|
BOOL
|
||||||
NTAPI
|
NTAPI
|
||||||
NtUserRealInternalGetMessage(
|
NtUserRealInternalGetMessage(
|
||||||
DWORD dwUnknown1,
|
LPMSG lpMsg,
|
||||||
DWORD dwUnknown2,
|
HWND hWnd,
|
||||||
DWORD dwUnknown3,
|
UINT wMsgFilterMin,
|
||||||
DWORD dwUnknown4,
|
UINT wMsgFilterMax,
|
||||||
DWORD dwUnknown5,
|
UINT wRemoveMsg,
|
||||||
DWORD dwUnknown6);
|
BOOL bGMSG);
|
||||||
|
|
||||||
DWORD
|
HWND
|
||||||
NTAPI
|
NTAPI
|
||||||
NtUserRealChildWindowFromPoint(
|
NtUserRealChildWindowFromPoint(
|
||||||
DWORD Unknown0,
|
HWND Parent,
|
||||||
DWORD Unknown1,
|
LONG x,
|
||||||
DWORD Unknown2);
|
LONG y);
|
||||||
|
|
||||||
DWORD
|
BOOL
|
||||||
NTAPI
|
NTAPI
|
||||||
NtUserRealWaitMessageEx(
|
NtUserRealWaitMessageEx(
|
||||||
DWORD dwUnknown1,
|
DWORD dwWakeMask,
|
||||||
DWORD dwUnknown2);
|
UINT uTimeout);
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
NTAPI
|
NTAPI
|
||||||
|
|
|
@ -935,25 +935,25 @@ NtUserQueryInputContext(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
NtUserRealInternalGetMessage(
|
NtUserRealInternalGetMessage(
|
||||||
DWORD dwUnknown1,
|
LPMSG lpMsg,
|
||||||
DWORD dwUnknown2,
|
HWND hWnd,
|
||||||
DWORD dwUnknown3,
|
UINT wMsgFilterMin,
|
||||||
DWORD dwUnknown4,
|
UINT wMsgFilterMax,
|
||||||
DWORD dwUnknown5,
|
UINT wRemoveMsg,
|
||||||
DWORD dwUnknown6)
|
BOOL bGMSG)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
NtUserRealWaitMessageEx(
|
NtUserRealWaitMessageEx(
|
||||||
DWORD dwUnknown1,
|
DWORD dwWakeMask,
|
||||||
DWORD dwUnknown2)
|
UINT uTimeout)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1252,10 +1252,10 @@ NtUserLockWindowUpdate(HWND hWnd)
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
DWORD APIENTRY
|
HWND APIENTRY
|
||||||
NtUserRealChildWindowFromPoint(DWORD Unknown0,
|
NtUserRealChildWindowFromPoint(HWND Parent,
|
||||||
DWORD Unknown1,
|
LONG x,
|
||||||
DWORD Unknown2)
|
LONG y)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED
|
||||||
|
|
||||||
|
|
|
@ -1478,73 +1478,6 @@ NtUserBuildHwndList(
|
||||||
return STATUS_SUCCESS;
|
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 )
|
static void IntSendParentNotify( PWND pWindow, UINT msg )
|
||||||
{
|
{
|
||||||
if ( (pWindow->style & (WS_CHILD | WS_POPUP)) == WS_CHILD &&
|
if ( (pWindow->style & (WS_CHILD | WS_POPUP)) == WS_CHILD &&
|
||||||
|
|
|
@ -1797,6 +1797,72 @@ BOOL FASTCALL IntEndDeferWindowPosEx( HDWP hdwp )
|
||||||
return res;
|
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
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue