15#define MINMAX_NOSWP (0x00010000)
17#define SWP_EX_NOCOPY 0x0001
18#define SWP_EX_PAINTSELF 0x0002
20#define SWP_AGG_NOGEOMETRYCHANGE \
21 (SWP_NOSIZE | SWP_NOCLIENTSIZE | SWP_NOZORDER)
22#define SWP_AGG_NOPOSCHANGE \
23 (SWP_NOSIZE | SWP_NOMOVE | SWP_NOCLIENTSIZE | SWP_NOCLIENTMOVE | SWP_NOZORDER)
24#define SWP_AGG_STATUSFLAGS \
25 (SWP_AGG_NOPOSCHANGE | SWP_FRAMECHANGED | SWP_HIDEWINDOW | SWP_SHOWWINDOW)
26#define SWP_AGG_NOCLIENTCHANGE \
27 (SWP_NOCLIENTSIZE | SWP_NOCLIENTMOVE)
29#define EMPTYPOINT(pt) ((pt).x == -1 && (pt).y == -1)
30#define PLACE_MIN 0x0001
31#define PLACE_MAX 0x0002
32#define PLACE_RECT 0x0004
125 if (!Wnd)
return FALSE;
146 BOOL mirror_from, mirror_to;
153 mirror_from = mirror_to =
FALSE;
181 for (
i = 0;
i != cPoints;
i++)
184 lpPoints[
i].
x *= Change;
188 if ((mirror_from || mirror_to) && cPoints == 2)
190 int tmp =
min(lpPoints[0].
x, lpPoints[1].
x);
191 lpPoints[1].
x =
max(lpPoints[0].
x, lpPoints[1].
x);
278 Window->hrgnClip = hRgnClip;
287 BOOL ActivePrev, FindTopWnd;
288 PWND pWndTopMost, pWndChild, pWndSetActive, pWndTemp, pWndDesk;
306 pWndSetActive = pWndChild;
326 if (!pWndTemp ) pWndTemp = pWndSetActive;
331 pWndSetActive = pWndChild;
334 pWndSetActive = pWndSetActive->
spwndNext;
337 if ( !FindTopWnd )
break;
354 if ((pWndSetActive = pWndTemp))
377 if (!Wnd)
return FALSE;
414 TRACE(
"WPAOW Popup with Owner\n");
434 WndTo = Wnd->
head.pti->MessageQueue->spwndActivePrev;
532 WorkArea = pmonitor->
rcWork;
561 if (!Wnd)
return FALSE;
629 if (!pmonitor)
return;
735 INT x,
y, xspacing, yspacing, sx, sy;
759 Child->InternalPos.IconPos.x = sx;
760 Child->InternalPos.IconPos.y = sy;
767 if (
x <= rectParent.
right - xspacing)
784 PWND pwndChild, pwndParent;
785 int x,
y, xspacing, yspacing;
787 pwndParent =
Window->spwndParent;
790 ERR(
"FIXME: Parent is Desktop, Min off screen!\n");
814 if (pwndChild ==
Window)
continue;
825 if (
x <= rectParent.
right - xspacing)
839 TRACE(
"Position is set! X:%d Y:%d\n",
Pos->x,
Pos->y);
955 adjustedStyle =
style & ~WS_BORDER;
957 adjustedStyle =
style;
968 xinc = yinc = adjust;
1014 rc_work = monitor->
rcWork;
1034 Window->state &= ~WNDS_MAXIMIZESTOMONITOR;
1083 if (ClientRect->
left < WindowRect->
left)
1085 ClientRect->
left = WindowRect->
left;
1087 else if (WindowRect->
right < ClientRect->
left)
1091 if (ClientRect->
right < WindowRect->
left)
1095 else if (WindowRect->
right < ClientRect->
right)
1099 if (ClientRect->
top < WindowRect->
top)
1101 ClientRect->
top = WindowRect->
top;
1103 else if (WindowRect->
bottom < ClientRect->
top)
1107 if (ClientRect->
bottom < WindowRect->
top)
1148 valid[0] = *new_client;
1149 valid[1] = *old_client;
1193 params.rgrc[0] = *WindowRect;
1205 params.lppos = &winposCopy;
1206 winposCopy = *WinPos;
1214 *ClientRect =
params.rgrc[0];
1222 if (ClientRect->
left !=
Window->rcClient.left ||
1223 ClientRect->
top !=
Window->rcClient.top)
1225 WinPos->
flags &= ~SWP_NOCLIENTMOVE;
1230 WinPos->
flags &= ~SWP_NOCLIENTSIZE;
1233 wvrFlags &= ~WVR_HREDRAW;
1237 WinPos->
flags &= ~SWP_NOCLIENTSIZE;
1240 wvrFlags &= ~WVR_VREDRAW;
1242 validRects[0] =
params.rgrc[1];
1243 validRects[1] =
params.rgrc[2];
1248 (ClientRect->
left !=
Window->rcClient.left ||
1249 ClientRect->
top !=
Window->rcClient.top))
1251 WinPos->
flags &= ~SWP_NOCLIENTMOVE;
1285 *WindowRect =
Window->rcWindow;
1297 WindowRect->
right = WindowRect->
left + WinPos->
cx;
1298 WindowRect->
bottom = WindowRect->
top + WinPos->
cy;
1316 TRACE(
"Not SWP_NOMOVE 1 Parent client offset X %d Y %d\n",
X,
Y);
1319 TRACE(
"Not SWP_NOMOVE 2 Parent client offset X %d Y %d\n",
X,
Y);
1322 WindowRect->
left =
X;
1323 WindowRect->
top =
Y;
1332 TRACE(
"hwnd %p, after %p, swp %d,%d %dx%d flags %08x\n",
1334 WinPos->
cx, WinPos->
cy, WinPos->
flags );
1363 TRACE(
"(%p) hInsertAfter = %p\n",
Window, hWndInsertAfter );
1369 TRACE(
"Window is child\n");
1370 return hWndInsertAfter;
1412 hWndInsertAfter =
List[
i - 1];
1419 return hWndInsertAfter;
1431 if (!topmost)
break;
1433 else if (
List[
i] == hWndInsertAfter)
break;
1437 return hWndInsertAfter;
1443 ERR(
"Window is HWND_BOTTOM hwnd %p\n",hWndInsertAfter);
1462 TRACE(
"skip all the topmost windows\n");
1474 if (
List[
i] == hWndInsertAfter)
break;
1504 hWndInsertAfter =
List[
i];
1509 return hWndInsertAfter;
1526 TRACE(
"InternalMoveWin X %d Y %d\n", MoveX, MoveY);
1528 Window->rcWindow.left += MoveX;
1529 Window->rcWindow.right += MoveX;
1530 Window->rcWindow.top += MoveY;
1531 Window->rcWindow.bottom += MoveY;
1533 Window->rcClient.left += MoveX;
1534 Window->rcClient.right += MoveX;
1535 Window->rcClient.top += MoveY;
1536 Window->rcClient.bottom += MoveY;
1557 if (WinPos->
x < -32768) WinPos->
x = -32768;
1558 else if (WinPos->
x > 32767) WinPos->
x = 32767;
1559 if (WinPos->
y < -32768) WinPos->
y = -32768;
1560 else if (WinPos->
y > 32767) WinPos->
y = 32767;
1562 WinPos->
cx =
max(WinPos->
cx, 0);
1563 WinPos->
cy =
max(WinPos->
cy, 0);
1573 WinPos->
flags &= ~SWP_HIDEWINDOW;
1587 TRACE(
"WPFU C2S wpx %d wpy %d ptx %d pty %d\n",WinPos->
x,WinPos->
y,
pt.x,
pt.y);
1602 WinPos->
flags &= ~SWP_NOZORDER;
1768 if (pwndNode ==
NULL ||
1788 HWND WndInsertAfter,
1797 RECTL NewWindowRect;
1798 RECTL NewClientRect;
1799 RECTL valid_rects[2];
1805 RECTL OldWindowRect, OldClientRect;
1810 BOOL bPointerInWindow, PosChanged =
FALSE;
1815 TRACE(
"pwnd %p, after %p, %d,%d (%dx%d), flags 0x%x\n",
1818 dump_winpos_flags(
flags);
1839 WinPos.
flags &= ~SWP_ASYNCWINDOWPOS;
1859 TRACE(
"WinPosSetWindowPos: Invalid handle 0x%p!\n",WinPos.
hwnd);
1889 if ( VisBefore !=
NULL &&
1906 if ( VisBeforeJustClient !=
NULL &&
1910 VisBeforeJustClient =
NULL;
1912 else if(VisBeforeJustClient)
1921 if (
Window->hrgnNewFrame)
1939 OldWindowRect =
Window->rcWindow;
1940 OldClientRect =
Window->rcClient;
1942 if (NewClientRect.
left != OldClientRect.
left ||
1943 NewClientRect.
top != OldClientRect.
top)
1947 NewClientRect.
left - OldClientRect.
left,
1948 NewClientRect.
top - OldClientRect.
top);
1952 Window->rcWindow = NewWindowRect;
1953 Window->rcClient = NewClientRect;
1967 Window->style &= ~WS_VISIBLE;
1968 Window->head.pti->cVisWindows--;
1995 Window->head.pti->cVisWindows++;
2006 NewWindowRect.
left - OldWindowRect.
left,
2007 NewWindowRect.
top - OldWindowRect.
top);
2026 if ( VisAfter !=
NULL &&
2044 if ( ( VisBefore !=
NULL &&
2063 else if (VisBeforeJustClient !=
NULL)
2068 if (VisBeforeJustClient !=
NULL)
2097 else if ( OldWindowRect.
left != NewWindowRect.
left ||
2098 OldWindowRect.
top != NewWindowRect.
top ||
2141 if (VisAfter !=
NULL)
2188 TRACE(
"SWP_FRAMECHANGED win child %p Parent %p\n",pwnd,
Parent);
2207 TRACE(
"SWP_FRAMECHANGED win %p hRgn %p\n",pwnd, DcRgn);
2226 if (VisBefore !=
NULL)
2233 OldWindowRect.
left - NewWindowRect.
left,
2234 OldWindowRect.
top - NewWindowRect.
top);
2236 if (VisAfter !=
NULL)
2248 if (VisAfter !=
NULL)
2289 if ( VisBefore ==
NULL &&
2290 VisBeforeJustClient ==
NULL &&
2294 TRACE(
"No drawing, set no Z order and no redraw!\n");
2328 WinPos.
x = NewWindowRect.
left;
2329 WinPos.
y = NewWindowRect.
top;
2330 WinPos.
cx = NewWindowRect.
right - NewWindowRect.
left;
2331 WinPos.
cy = NewWindowRect.
bottom - NewWindowRect.
top;
2332 TRACE(
"WM_WINDOWPOSCHANGED hwnd %p Flags %04x\n",WinPos.
hwnd,WinPos.
flags);
2372 *ClientRect = *WindowRect;
2390 Wnd->
state &= ~WNDS_SENDSIZEMOVEMSGS;
2424 wpl.
length =
sizeof(wpl);
2429 ERR(
"WinPosMinMaximize WH_CBT Call Hook return!\n");
2462 Wnd->
InternalPos.flags &= ~WPF_RESTORETOMAXIMIZED;
2514 Wnd->
InternalPos.flags &= ~WPF_RESTORETOMAXIMIZED;
2550 Wnd->
InternalPos.flags &= ~WPF_RESTORETOMAXIMIZED;
2569 UINT Swp = 0, EventMsg = 0;
2570 RECTL NewPos = {0, 0, 0, 0};
2584 TRACE(
"co_WinPosShowWindow START hwnd %p Cmd %d usicmd %u\n",
2600 TRACE(
"co_WPSW FT 1\n");
2612 TRACE(
"co_WPSW FT 2\n");
2660 EventMsg = EVENT_SYSTEM_MINIMIZESTART;
2683 EventMsg = EVENT_SYSTEM_MINIMIZEEND;
2702 if (WasVisible)
return(
TRUE);
2767 ERR(
"WinPosShowWindow Set active\n");
2776 TRACE(
"Child is Vis %s or State changed %s. ShowFlag %s Swp %04x\n",
2778 (ShowFlag ?
"TRUE" :
"FALSE"),
LOWORD(Swp));
2789 TRACE(
"Parent Vis?\n");
2893 for (phWnd =
List; *phWnd; ++phWnd)
2902 if (pwndChild !=
NULL)
2943 if( ScopeWin ==
NULL )
2946 if(ScopeWin ==
NULL)
2978 Pt.
x +=
Parent->rcClient.left;
2986 for (phWnd =
List; *phWnd; phWnd++)
3005 return pwndHit ? pwndHit :
Parent;
3022 Pt.
x =
Parent->rcClient.right - Pt.
x;
3024 Pt.
x +=
Parent->rcClient.left;
3032 for (phWnd =
List; *phWnd; phWnd++)
3057 return pwndHit ? pwndHit :
Parent;
3074 HDWP retvalue = hdwp;
3076 TRACE(
"hdwp %p, hwnd %p, after %p, %d,%d (%dx%d), flags %08x\n",
3095 for (
i = 0;
i < pDWP->
ccvr;
i++)
3135 pDWP->
acvr = newpos;
3159 TRACE(
"%p\n", hdwp);
3167 for (
i = 0, winpos = pDWP->
acvr;
res && i < pDWP->ccvr;
i++, winpos++)
3172 TRACE(
"hwnd %p, after %p, %d,%d (%dx%d), flags %08x\n",
3188 *ppos = winpos->
pos;
3230 TRACE(
"Enter NtUserChildWindowFromPointEx\n");
3237 TRACE(
"Leave NtUserChildWindowFromPointEx\n");
3249 TRACE(
"Enter NtUserEndDeferWindowPosEx\n");
3252 TRACE(
"Leave NtUserEndDeferWindowPosEx, ret=%i\n", Ret);
3263 HWND WndInsertAfter,
3276 TRACE(
"Enter NtUserDeferWindowPos\n");
3291 if ( WndInsertAfter &&
3306 TRACE(
"Leave NtUserDeferWindowPos, ret=%p\n", Ret);
3378 if (!Hit) Ret = wndpl.
showCmd;
3397 TRACE(
"Enter NtUserGetWindowPlacement\n");
3426 TRACE(
"Leave NtUserGetWindowPlacement, ret=%i\n", Ret);
3440 TRACE(
"Enter NtUserMinMaximize\n");
3460 TRACE(
"Leave NtUserMinMaximize\n");
3491 TRACE(
"Enter NtUserRealChildWindowFromPoint\n");
3498 TRACE(
"Leave NtUserRealChildWindowFromPoint\n");
3508 HWND hWndInsertAfter,
3519 TRACE(
"Enter NtUserSetWindowPos\n");
3525 ERR(
"NtUserSetWindowPos bad window handle!\n");
3529 if ( hWndInsertAfter !=
HWND_TOP &&
3537 ERR(
"NtUserSetWindowPos bad insert window handle!\n");
3545 if (
X < -32768)
X = -32768;
3546 else if (
X > 32767)
X = 32767;
3547 if (
Y < -32768)
Y = -32768;
3548 else if (
Y > 32767)
Y = 32767;
3553 else if (
cx > 32767)
cx = 32767;
3555 else if (
cy > 32767)
cy = 32767;
3563 TRACE(
"Leave NtUserSetWindowPos, ret=%i\n",
ret);
3577 HRGN hrgnCopy =
NULL;
3582 TRACE(
"Enter NtUserSetWindowRgn\n");
3607 Window->hrgnNewFrame = hrgnCopy;
3617 TRACE(
"Leave NtUserSetWindowRgn, ret=%i\n", Ret);
3640 TRACE(
"Enter NtUserSetWindowPlacement\n");
3669 wndpl.
length =
sizeof(wndpl);
3691 TRACE(
"Leave NtUserSetWindowPlacement, ret=%i\n", Ret);
3709 TRACE(
"Enter NtUserSetWindowPlacement\n");
3743 TRACE(
"Leave NtUserSetWindowPlacement, ret=%i\n", Ret);
3759 TRACE(
"Enter NtUserShowWindowAsync\n");
3780 TRACE(
"Leave NtUserShowWindowAsync, ret=%i\n",
ret);
3795 TRACE(
"Enter NtUserShowWindow hWnd %p SW_ %d\n",
hWnd, nCmdShow);
3815 TRACE(
"Leave NtUserShowWindow, ret=%i\n",
ret);
3833 TRACE(
"Enter NtUserWindowFromPoint\n");
3857 TRACE(
"Leave NtUserWindowFromPoint, ret=%p\n", Ret);
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
#define DBG_DEFAULT_CHANNEL(ch)
VOID FASTCALL DceResetActiveDCEs(PWND Window)
#define NT_SUCCESS(StatCode)
#define ERROR_INVALID_PARAMETER
#define ValidateHwndNoErr(hwnd)
VOID FASTCALL IntEngWindowChanged(_In_ struct _WND *Window, _In_ FLONG flChanged)
#define ExAllocatePoolWithTag(hernya, size, tag)
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
HWND FASTCALL co_UserSetFocus(PWND Window)
BOOL FASTCALL IntCheckFullscreen(PWND Window)
BOOL FASTCALL UserSetActiveWindow(_In_opt_ PWND Wnd)
PUSER_MESSAGE_QUEUE gpqForeground
VOID FASTCALL UpdateShellHook(PWND Window)
BOOL FASTCALL co_IntSetForegroundWindow(PWND Window)
HWND FASTCALL UserGetForegroundWindow(VOID)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLdouble GLdouble GLdouble GLdouble top
GLenum const GLfloat * params
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define EXCEPTION_EXECUTE_HANDLER
#define WNDS2_WIN31COMPAT
#define WNDS_BEINGACTIVATED
#define UserHMGetHandle(obj)
#define WNDS_MAXIMIZESTOMONITOR
#define WNDS_ERASEBACKGROUND
#define WNDS_SENDSIZEMOVEMSGS
#define WNDS_SENDERASEBACKGROUND
#define MmCopyToCaller(x, y, z)
#define ExFreePoolWithTag(_P, _T)
VOID FASTCALL co_MsqInsertMouseMessage(MSG *Msg, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook)
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
__kernel_entry W32KAPI INT APIENTRY NtGdiCombineRgn(_In_ HRGN hrgnDst, _In_ HRGN hrgnSrc1, _In_opt_ HRGN hrgnSrc2, _In_ INT iMode)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiBitBlt(_In_ HDC hdcDst, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ DWORD rop4, _In_ DWORD crBackColor, _In_ FLONG fl)
__kernel_entry W32KAPI HRGN APIENTRY NtGdiCreateRectRgn(_In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom)
__kernel_entry W32KAPI INT APIENTRY NtGdiOffsetRgn(_In_ HRGN hrgn, _In_ INT cx, _In_ INT cy)
#define GDI_OBJ_HMGR_POWNED
#define GDI_OBJ_HMGR_PUBLIC
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
LRESULT APIENTRY co_HOOK_CallHooks(INT HookId, INT Code, WPARAM wParam, LPARAM lParam)
BOOL FASTCALL IntClientToScreen(PWND Wnd, LPPOINT lpPoint)
UINT FASTCALL co_WinPosMinMaximize(PWND Wnd, UINT ShowFlag, RECT *NewPos)
INT APIENTRY NtUserSetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)
BOOL APIENTRY NtUserSetWindowPlacement(HWND hWnd, WINDOWPLACEMENT *lpwndpl)
DWORD APIENTRY NtUserMinMaximize(HWND hWnd, UINT cmd, BOOL Hide)
UINT FASTCALL co_WinPosArrangeIconicWindows(PWND parent)
static VOID FASTCALL FixClientRect(PRECTL ClientRect, PRECTL WindowRect)
BOOL FASTCALL IntSetWindowPlacement(PWND Wnd, WINDOWPLACEMENT *wpl, UINT Flags)
static BOOL FASTCALL co_WinPosDoWinPosChanging(PWND Window, PWINDOWPOS WinPos, PRECTL WindowRect, PRECTL ClientRect)
VOID FASTCALL co_WinPosActivateOtherWindow(PWND Wnd)
BOOLEAN FASTCALL co_WinPosSetWindowPos(PWND Window, HWND WndInsertAfter, INT x, INT y, INT cx, INT cy, UINT flags)
static BOOL FASTCALL WinPosFixupFlags(WINDOWPOS *WinPos, PWND Wnd)
BOOL APIENTRY NtUserMoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint)
INT FASTCALL IntMapWindowPoints(PWND FromWnd, PWND ToWnd, LPPOINT lpPoints, UINT cPoints)
BOOL FASTCALL IsChildVisible(PWND pWnd)
PWND FASTCALL IntGetLastTopMostWindow(VOID)
BOOL APIENTRY NtUserSetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags)
VOID ForceNCPaintErase(PWND Wnd, HRGN hRgn, PREGION pRgn)
DWORD APIENTRY NtUserGetInternalWindowPos(HWND hWnd, LPRECT rectWnd, LPPOINT ptIcon)
static void make_point_onscreen(POINT *pt)
DWORD IntGetWindowBorders(DWORD Style, DWORD ExStyle)
VOID FASTCALL WinPosInitInternalPos(PWND Wnd, RECTL *RestoreRect)
DWORD APIENTRY NtUserSetInternalWindowPos(HWND hwnd, UINT showCmd, LPRECT lprect, LPPOINT lppt)
BOOL FASTCALL IntGetWindowPlacement(PWND Wnd, WINDOWPLACEMENT *lpwndpl)
static PWND co_WinPosSearchChildren(IN PWND ScopeWin, IN POINT *Point, IN OUT USHORT *HitTest, IN BOOL Ignore)
static VOID FASTCALL get_valid_rects(RECTL *old_client, RECTL *new_client, UINT flags, RECTL *valid)
BOOL FASTCALL ActivateOtherWindowMin(PWND Wnd)
static void make_rect_onscreen(RECT *rect)
PWND APIENTRY co_WinPosWindowFromPoint(IN PWND ScopeWin, IN POINT *WinPoint, IN OUT USHORT *HitTest, IN BOOL Ignore)
#define SWP_AGG_STATUSFLAGS
static VOID FASTCALL WinPosFindIconPos(PWND Window, POINT *Pos)
BOOL APIENTRY NtUserShowWindow(HWND hWnd, LONG nCmdShow)
HWND APIENTRY NtUserRealChildWindowFromPoint(HWND Parent, LONG x, LONG y)
LRESULT FASTCALL co_WinPosGetNonClientSize(PWND Window, RECT *WindowRect, RECT *ClientRect)
static VOID FASTCALL WinPosInternalMoveWindow(PWND Window, INT MoveX, INT MoveY)
VOID FASTCALL IntGetClientRect(PWND Wnd, RECTL *Rect)
BOOL APIENTRY NtUserShowWindowAsync(HWND hWnd, LONG nCmdShow)
static BOOL IntValidateParent(PWND Child, PREGION ValidateRgn)
BOOL FASTCALL IntGetWindowRect(PWND Wnd, RECTL *Rect)
#define SWP_AGG_NOCLIENTCHANGE
UINT FASTCALL co_WinPosGetMinMaxInfo(PWND Window, POINT *MaxSize, POINT *MaxPos, POINT *MinTrack, POINT *MaxTrack)
static HWND FASTCALL WinPosDoOwnedPopups(PWND Window, HWND hWndInsertAfter)
BOOL FASTCALL IntScreenToClient(PWND Wnd, LPPOINT lpPoint)
PWND APIENTRY IntChildWindowFromPointEx(PWND Parent, LONG x, LONG y, UINT uiFlags)
BOOL APIENTRY NtUserGetWindowPlacement(HWND hWnd, WINDOWPLACEMENT *lpwndpl)
static BOOL FASTCALL can_activate_window(PWND Wnd OPTIONAL)
void FASTCALL co_WinPosSendSizeMove(PWND Wnd)
BOOL UserHasWindowEdge(DWORD Style, DWORD ExStyle)
HWND APIENTRY NtUserWindowFromPoint(LONG X, LONG Y)
HDWP APIENTRY NtUserDeferWindowPos(HDWP WinPosInfo, HWND Wnd, HWND WndInsertAfter, int x, int y, int cx, int cy, UINT Flags)
HWND APIENTRY NtUserChildWindowFromPointEx(HWND hwndParent, LONG x, LONG y, UINT uiFlags)
BOOLEAN FASTCALL co_WinPosShowWindow(PWND Wnd, INT Cmd)
BOOL FASTCALL IntGetClientOrigin(PWND Window OPTIONAL, LPPOINT Point)
#define SWP_AGG_NOGEOMETRYCHANGE
VOID UserGetWindowBorders(DWORD Style, DWORD ExStyle, SIZE *Size, BOOL WithClient)
#define SWP_AGG_NOPOSCHANGE
VOID FASTCALL IntGetWindowBorderMeasures(PWND Wnd, UINT *cx, UINT *cy)
VOID SelectWindowRgn(PWND Window, HRGN hRgnClip)
PWND FASTCALL IntRealChildWindowFromPoint(PWND Parent, LONG x, LONG y)
HDWP FASTCALL IntDeferWindowPos(HDWP hdwp, HWND hwnd, HWND hwndAfter, INT x, INT y, INT cx, INT cy, UINT flags)
BOOL APIENTRY NtUserEndDeferWindowPosEx(HDWP WinPosInfo, BOOL bAsync)
BOOL FASTCALL IntEndDeferWindowPosEx(HDWP hdwp, BOOL bAsync)
static LONG FASTCALL co_WinPosDoNCCALCSize(PWND Window, PWINDOWPOS WinPos, RECTL *WindowRect, RECTL *ClientRect, RECTL *validRects)
static VOID FASTCALL IntImeWindowPosChanged(VOID)
VOID FASTCALL UserLeave(VOID)
VOID FASTCALL UserEnterShared(VOID)
VOID FASTCALL UserEnterExclusive(VOID)
static __inline VOID UserDerefObjectCo(PVOID obj)
static __inline VOID UserRefObjectCo(PVOID obj, PUSER_REFERENCE_ENTRY UserReferenceEntry)
#define WS_EX_DLGMODALFRAME
#define WS_EX_TRANSPARENT
_Out_opt_ int _Out_opt_ int * cy
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
PULONG MinorVersion OPTIONAL
Implementation of the Explorer desktop window.
struct _USER_MESSAGE_QUEUE * MessageQueue
struct _WND::@5110 InternalPos
UINT InternalPosInitialized
struct _WND * spwndParent
HWND ahwnd[ANYSIZE_ARRAY]
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
VOID FASTCALL UserSyncAndPaintWindows(PWND pWnd, ULONG Flags)
VOID FASTCALL IntSendNCPaint(PWND pWnd, HRGN hRgn)
VOID FASTCALL co_IntPaintWindows(PWND Wnd, ULONG Flags, BOOL Recurse)
BOOL FASTCALL co_UserRedrawWindow(PWND Window, const RECTL *UpdateRect, PREGION UpdateRgn, ULONG Flags)
VOID FASTCALL IntInvalidateWindows(PWND Wnd, PREGION Rgn, ULONG Flags)
PWND FASTCALL UserGetWindowObject(HWND hWnd)
PWND FASTCALL UserGetAncestor(PWND Wnd, UINT Type)
#define ASSERT_REFS_CO(_obj_)
HWND FASTCALL UserGetShellWindow(VOID)
INT FASTCALL UserReleaseDC(PWND Window, HDC hDc, BOOL EndPaint)
HDC FASTCALL UserGetDCEx(PWND Window OPTIONAL, HANDLE ClipRegion, ULONG Flags)
PREGION FASTCALL VIS_ComputeVisibleRegion(PWND Wnd, BOOLEAN ClientArea, BOOLEAN ClipChildren, BOOLEAN ClipSiblings)
VOID FASTCALL co_VIS_WindowLayoutChanged(PWND Wnd, PREGION NewlyExposed)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
_Must_inspect_result_ _In_ WDFCMRESLIST List
VOID FASTCALL SetLastNtError(_In_ NTSTATUS Status)
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
BOOL NTAPI GreIsHandleValid(HGDIOBJ hobj)
VOID FASTCALL RECTL_vInflateRect(_Inout_ RECTL *rect, _In_ INT dx, _In_ INT dy)
BOOL FASTCALL RECTL_bIntersectRect(_Out_ RECTL *prclDst, _In_ const RECTL *prcl1, _In_ const RECTL *prcl2)
FORCEINLINE VOID RECTL_vSetRect(_Out_ RECTL *prcl, _In_ LONG left, _In_ LONG top, _In_ LONG right, _In_ LONG bottom)
FORCEINLINE BOOL RECTL_bPointInRect(_In_ const RECTL *prcl, _In_ INT x, _In_ INT y)
FORCEINLINE VOID RECTL_vOffsetRect(_Inout_ RECTL *prcl, _In_ INT cx, _In_ INT cy)
FORCEINLINE VOID RECTL_vSetEmptyRect(_Out_ RECTL *prcl)
INT FASTCALL REGION_Complexity(PREGION prgn)
VOID FASTCALL REGION_Delete(PREGION pRgn)
PREGION FASTCALL REGION_LockRgn(_In_ HRGN hrgn)
BOOL FASTCALL IntGdiSetRegionOwner(HRGN hRgn, DWORD OwnerMask)
VOID FASTCALL REGION_UnlockRgn(_In_ PREGION prgn)
INT FASTCALL REGION_GetRgnBox(PREGION Rgn, PRECTL pRect)
PREGION FASTCALL IntSysCreateRectpRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect)
BOOL FASTCALL REGION_bOffsetRgn(_Inout_ PREGION prgn, _In_ INT cx, _In_ INT cy)
INT FASTCALL IntGdiCombineRgn(PREGION prgnDest, PREGION prgnSrc1, PREGION prgnSrc2, INT iCombineMode)
PWND FASTCALL UserGetDesktopWindow(VOID)
VOID FASTCALL IntSetFocusMessageQueue(PUSER_MESSAGE_QUEUE NewQueue)
HWND FASTCALL IntGetDesktopWindow(VOID)
PUSER_MESSAGE_QUEUE FASTCALL IntGetFocusMessageQueue(VOID)
VOID co_IntShellHookNotify(WPARAM Message, WPARAM wParam, LPARAM lParam)
PWND FASTCALL IntGetThreadDesktopWindow(PTHREADINFO pti)
#define UserIsMessageWindow(pWnd)
#define UserIsDesktopWindow(pWnd)
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
LRESULT FASTCALL co_IntSendMessageNoWait(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
LRESULT FASTCALL co_IntSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
LONG NTAPI UserGetSystemMetrics(ULONG Index)
PMONITOR NTAPI UserMonitorFromRect(PRECTL pRect, DWORD dwFlags)
PMONITOR NTAPI UserGetPrimaryMonitor(VOID)
PVOID UserGetObject(PUSER_HANDLE_TABLE ht, HANDLE handle, HANDLE_TYPE type)
BOOL FASTCALL UserDereferenceObject(PVOID Object)
BOOL FASTCALL UserDeleteObject(HANDLE h, HANDLE_TYPE type)
PUSER_HANDLE_TABLE gHandleTable
VOID FASTCALL UserReferenceObject(PVOID obj)
ULONG FASTCALL IntSetStyle(PWND pwnd, ULONG set_bits, ULONG clear_bits)
HWND *FASTCALL IntWinListChildren(PWND Window)
VOID FASTCALL IntFreeHwndList(PWINDOWLIST pwlTarget)
BOOL FASTCALL IntShowOwnedPopups(PWND OwnerWnd, BOOL fShow)
PWND FASTCALL VerifyWnd(PWND pWnd)
HWND FASTCALL IntGetWindow(HWND hWnd, UINT uCmd)
BOOL FASTCALL IntIsWindow(HWND hWnd)
PWINDOWLIST FASTCALL IntBuildHwndList(PWND pwnd, DWORD dwFlags, PTHREADINFO pti)
VOID FASTCALL IntLinkHwnd(PWND Wnd, HWND hWndPrev)
BOOL FASTCALL IntIsWindowVisible(PWND Wnd)
#define HAS_DLGFRAME(Style, ExStyle)
#define HAS_THINFRAME(Style, ExStyle)
#define IntIsDesktopWindow(WndObj)
#define HAS_THICKFRAME(Style, ExStyle)
#define STARTF_USEPOSITION
#define STARTF_USESHOWWINDOW
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
#define CopyRgn(hrgnDst, hrgnSrc)
#define ERROR_INVALID_DWP_HANDLE
#define ERROR_INVALID_WINDOW_HANDLE
#define ERROR_INVALID_FLAGS
FORCEINLINE BOOL IntPtInWindow(PWND pwnd, INT x, INT y)
BOOL WINAPI CopyRect(_Out_ LPRECT, _In_ LPCRECT)
#define CWP_SKIPTRANSPARENT
#define HSHELL_WINDOWDESTROYED
#define WM_WINDOWPOSCHANGING
#define HSHELL_WINDOWCREATED
#define RDW_NOINTERNALPAINT
#define SW_SHOWNOACTIVATE
#define SWP_ASYNCWINDOWPOS
BOOL WINAPI ValidateRgn(_In_ HWND, _In_opt_ HRGN)
#define CWP_SKIPINVISIBLE
#define WPF_RESTORETOMAXIMIZED
#define SWP_NOOWNERZORDER
struct _WINDOWPLACEMENT WINDOWPLACEMENT
#define WM_WINDOWPOSCHANGED
#define SWP_NOSENDCHANGING
#define WPF_SETMINPOSITION
#define SW_SHOWMINNOACTIVE
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_Must_inspect_result_ _In_ ULONG Flags