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;
566 if (!Wnd)
return FALSE;
570 ERR(
"length mismatch: %u\n", lpwndpl->
length);
635 if (!pmonitor)
return;
741 INT x,
y, xspacing, yspacing, sx, sy;
765 Child->InternalPos.IconPos.x = sx;
766 Child->InternalPos.IconPos.y = sy;
773 if (
x <= rectParent.
right - xspacing)
790 PWND pwndChild, pwndParent;
791 int x,
y, xspacing, yspacing;
793 pwndParent =
Window->spwndParent;
796 ERR(
"FIXME: Parent is Desktop, Min off screen!\n");
820 if (pwndChild ==
Window)
continue;
831 if (
x <= rectParent.
right - xspacing)
845 TRACE(
"Position is set! X:%d Y:%d\n",
Pos->x,
Pos->y);
961 adjustedStyle =
style & ~WS_BORDER;
963 adjustedStyle =
style;
974 xinc = yinc = adjust;
1020 rc_work = monitor->
rcWork;
1040 Window->state &= ~WNDS_MAXIMIZESTOMONITOR;
1089 if (ClientRect->
left < WindowRect->
left)
1091 ClientRect->
left = WindowRect->
left;
1093 else if (WindowRect->
right < ClientRect->
left)
1097 if (ClientRect->
right < WindowRect->
left)
1101 else if (WindowRect->
right < ClientRect->
right)
1105 if (ClientRect->
top < WindowRect->
top)
1107 ClientRect->
top = WindowRect->
top;
1109 else if (WindowRect->
bottom < ClientRect->
top)
1113 if (ClientRect->
bottom < WindowRect->
top)
1154 valid[0] = *new_client;
1155 valid[1] = *old_client;
1199 params.rgrc[0] = *WindowRect;
1211 params.lppos = &winposCopy;
1212 winposCopy = *WinPos;
1220 *ClientRect =
params.rgrc[0];
1228 if (ClientRect->
left !=
Window->rcClient.left ||
1229 ClientRect->
top !=
Window->rcClient.top)
1231 WinPos->
flags &= ~SWP_NOCLIENTMOVE;
1236 WinPos->
flags &= ~SWP_NOCLIENTSIZE;
1239 wvrFlags &= ~WVR_HREDRAW;
1243 WinPos->
flags &= ~SWP_NOCLIENTSIZE;
1246 wvrFlags &= ~WVR_VREDRAW;
1248 validRects[0] =
params.rgrc[1];
1249 validRects[1] =
params.rgrc[2];
1254 (ClientRect->
left !=
Window->rcClient.left ||
1255 ClientRect->
top !=
Window->rcClient.top))
1257 WinPos->
flags &= ~SWP_NOCLIENTMOVE;
1291 *WindowRect =
Window->rcWindow;
1303 WindowRect->
right = WindowRect->
left + WinPos->
cx;
1304 WindowRect->
bottom = WindowRect->
top + WinPos->
cy;
1322 TRACE(
"Not SWP_NOMOVE 1 Parent client offset X %d Y %d\n",
X,
Y);
1325 TRACE(
"Not SWP_NOMOVE 2 Parent client offset X %d Y %d\n",
X,
Y);
1328 WindowRect->
left =
X;
1329 WindowRect->
top =
Y;
1338 TRACE(
"hwnd %p, after %p, swp %d,%d %dx%d flags %08x\n",
1340 WinPos->
cx, WinPos->
cy, WinPos->
flags );
1369 TRACE(
"(%p) hInsertAfter = %p\n",
Window, hWndInsertAfter );
1375 TRACE(
"Window is child\n");
1376 return hWndInsertAfter;
1418 hWndInsertAfter =
List[
i - 1];
1425 return hWndInsertAfter;
1437 if (!topmost)
break;
1439 else if (
List[
i] == hWndInsertAfter)
break;
1443 return hWndInsertAfter;
1449 ERR(
"Window is HWND_BOTTOM hwnd %p\n",hWndInsertAfter);
1468 TRACE(
"skip all the topmost windows\n");
1480 if (
List[
i] == hWndInsertAfter)
break;
1510 hWndInsertAfter =
List[
i];
1515 return hWndInsertAfter;
1532 TRACE(
"InternalMoveWin X %d Y %d\n", MoveX, MoveY);
1534 Window->rcWindow.left += MoveX;
1535 Window->rcWindow.right += MoveX;
1536 Window->rcWindow.top += MoveY;
1537 Window->rcWindow.bottom += MoveY;
1539 Window->rcClient.left += MoveX;
1540 Window->rcClient.right += MoveX;
1541 Window->rcClient.top += MoveY;
1542 Window->rcClient.bottom += MoveY;
1563 if (WinPos->
x < -32768) WinPos->
x = -32768;
1564 else if (WinPos->
x > 32767) WinPos->
x = 32767;
1565 if (WinPos->
y < -32768) WinPos->
y = -32768;
1566 else if (WinPos->
y > 32767) WinPos->
y = 32767;
1568 WinPos->
cx =
max(WinPos->
cx, 0);
1569 WinPos->
cy =
max(WinPos->
cy, 0);
1579 WinPos->
flags &= ~SWP_HIDEWINDOW;
1593 TRACE(
"WPFU C2S wpx %d wpy %d ptx %d pty %d\n",WinPos->
x,WinPos->
y,
pt.x,
pt.y);
1608 WinPos->
flags &= ~SWP_NOZORDER;
1774 if (pwndNode ==
NULL ||
1794 HWND WndInsertAfter,
1803 RECTL NewWindowRect;
1804 RECTL NewClientRect;
1805 RECTL valid_rects[2];
1811 RECTL OldWindowRect, OldClientRect;
1816 BOOL bPointerInWindow, PosChanged =
FALSE;
1821 TRACE(
"pwnd %p, after %p, %d,%d (%dx%d), flags 0x%x\n",
1824 dump_winpos_flags(
flags);
1845 WinPos.
flags &= ~SWP_ASYNCWINDOWPOS;
1865 TRACE(
"WinPosSetWindowPos: Invalid handle 0x%p!\n",WinPos.
hwnd);
1895 if ( VisBefore !=
NULL &&
1912 if ( VisBeforeJustClient !=
NULL &&
1916 VisBeforeJustClient =
NULL;
1918 else if(VisBeforeJustClient)
1927 if (
Window->hrgnNewFrame)
1945 OldWindowRect =
Window->rcWindow;
1946 OldClientRect =
Window->rcClient;
1948 if (NewClientRect.
left != OldClientRect.
left ||
1949 NewClientRect.
top != OldClientRect.
top)
1953 NewClientRect.
left - OldClientRect.
left,
1954 NewClientRect.
top - OldClientRect.
top);
1958 Window->rcWindow = NewWindowRect;
1959 Window->rcClient = NewClientRect;
1973 Window->style &= ~WS_VISIBLE;
1974 Window->head.pti->cVisWindows--;
2001 Window->head.pti->cVisWindows++;
2012 NewWindowRect.
left - OldWindowRect.
left,
2013 NewWindowRect.
top - OldWindowRect.
top);
2032 if ( VisAfter !=
NULL &&
2060 if (VisBefore !=
NULL &&
2079 else if (VisBeforeJustClient !=
NULL)
2108 else if ( OldWindowRect.
left != NewWindowRect.
left ||
2109 OldWindowRect.
top != NewWindowRect.
top ||
2152 if (VisAfter !=
NULL)
2199 TRACE(
"SWP_FRAMECHANGED win child %p Parent %p\n",pwnd,
Parent);
2218 TRACE(
"SWP_FRAMECHANGED win %p hRgn %p\n",pwnd, DcRgn);
2232 if (VisBefore !=
NULL)
2239 OldWindowRect.
left - NewWindowRect.
left,
2240 OldWindowRect.
top - NewWindowRect.
top);
2242 if (VisAfter !=
NULL)
2289 if ( VisBefore ==
NULL &&
2290 VisBeforeJustClient ==
NULL &&
2294 TRACE(
"No drawing, set no Z order and no redraw!\n");
2298 if (VisBefore !=
NULL)
2303 if (VisBeforeJustClient !=
NULL)
2306 VisBeforeJustClient =
NULL;
2308 if (VisAfter !=
NULL)
2349 WinPos.
x = NewWindowRect.
left;
2350 WinPos.
y = NewWindowRect.
top;
2351 WinPos.
cx = NewWindowRect.
right - NewWindowRect.
left;
2352 WinPos.
cy = NewWindowRect.
bottom - NewWindowRect.
top;
2353 TRACE(
"WM_WINDOWPOSCHANGED hwnd %p Flags %04x\n",WinPos.
hwnd,WinPos.
flags);
2393 *ClientRect = *WindowRect;
2411 Wnd->
state &= ~WNDS_SENDSIZEMOVEMSGS;
2445 wpl.
length =
sizeof(wpl);
2450 ERR(
"WinPosMinMaximize WH_CBT Call Hook return!\n");
2483 Wnd->
InternalPos.flags &= ~WPF_RESTORETOMAXIMIZED;
2536 Wnd->
InternalPos.flags &= ~WPF_RESTORETOMAXIMIZED;
2578 Wnd->
InternalPos.flags &= ~WPF_RESTORETOMAXIMIZED;
2597 UINT Swp = 0, EventMsg = 0;
2598 RECTL NewPos = {0, 0, 0, 0};
2612 TRACE(
"co_WinPosShowWindow START hwnd %p Cmd %d usicmd %u\n",
2628 TRACE(
"co_WPSW FT 1\n");
2640 TRACE(
"co_WPSW FT 2\n");
2688 EventMsg = EVENT_SYSTEM_MINIMIZESTART;
2711 EventMsg = EVENT_SYSTEM_MINIMIZEEND;
2730 if (WasVisible)
return(
TRUE);
2795 ERR(
"WinPosShowWindow Set active\n");
2804 TRACE(
"Child is Vis %s or State changed %s. ShowFlag %s Swp %04x\n",
2806 (ShowFlag ?
"TRUE" :
"FALSE"),
LOWORD(Swp));
2817 TRACE(
"Parent Vis?\n");
2921 for (phWnd =
List; *phWnd; ++phWnd)
2930 if (pwndChild !=
NULL)
2971 if( ScopeWin ==
NULL )
2974 if(ScopeWin ==
NULL)
3006 Pt.
x +=
Parent->rcClient.left;
3014 for (phWnd =
List; *phWnd; phWnd++)
3033 return pwndHit ? pwndHit :
Parent;
3050 Pt.
x =
Parent->rcClient.right - Pt.
x;
3052 Pt.
x +=
Parent->rcClient.left;
3060 for (phWnd =
List; *phWnd; phWnd++)
3085 return pwndHit ? pwndHit :
Parent;
3102 HDWP retvalue = hdwp;
3104 TRACE(
"hdwp %p, hwnd %p, after %p, %d,%d (%dx%d), flags %08x\n",
3123 for (
i = 0;
i < pDWP->
ccvr;
i++)
3163 pDWP->
acvr = newpos;
3187 TRACE(
"%p\n", hdwp);
3195 for (
i = 0, winpos = pDWP->
acvr;
res && i < pDWP->ccvr;
i++, winpos++)
3200 TRACE(
"hwnd %p, after %p, %d,%d (%dx%d), flags %08x\n",
3216 *ppos = winpos->
pos;
3258 TRACE(
"Enter NtUserChildWindowFromPointEx\n");
3265 TRACE(
"Leave NtUserChildWindowFromPointEx\n");
3277 TRACE(
"Enter NtUserEndDeferWindowPosEx\n");
3280 TRACE(
"Leave NtUserEndDeferWindowPosEx, ret=%i\n", Ret);
3291 HWND WndInsertAfter,
3304 TRACE(
"Enter NtUserDeferWindowPos\n");
3319 if ( WndInsertAfter &&
3334 TRACE(
"Leave NtUserDeferWindowPos, ret=%p\n", Ret);
3406 if (!Hit) Ret = wndpl.
showCmd;
3425 TRACE(
"Enter NtUserGetWindowPlacement\n");
3453 TRACE(
"Leave NtUserGetWindowPlacement, ret=%i\n", Ret);
3467 TRACE(
"Enter NtUserMinMaximize\n");
3487 TRACE(
"Leave NtUserMinMaximize\n");
3518 TRACE(
"Enter NtUserRealChildWindowFromPoint\n");
3525 TRACE(
"Leave NtUserRealChildWindowFromPoint\n");
3535 HWND hWndInsertAfter,
3546 TRACE(
"Enter NtUserSetWindowPos\n");
3552 ERR(
"NtUserSetWindowPos bad window handle!\n");
3556 if ( hWndInsertAfter !=
HWND_TOP &&
3564 ERR(
"NtUserSetWindowPos bad insert window handle!\n");
3572 if (
X < -32768)
X = -32768;
3573 else if (
X > 32767)
X = 32767;
3574 if (
Y < -32768)
Y = -32768;
3575 else if (
Y > 32767)
Y = 32767;
3580 else if (
cx > 32767)
cx = 32767;
3582 else if (
cy > 32767)
cy = 32767;
3590 TRACE(
"Leave NtUserSetWindowPos, ret=%i\n",
ret);
3604 HRGN hrgnCopy =
NULL;
3609 TRACE(
"Enter NtUserSetWindowRgn\n");
3634 Window->hrgnNewFrame = hrgnCopy;
3644 TRACE(
"Leave NtUserSetWindowRgn, ret=%i\n", Ret);
3667 TRACE(
"Enter NtUserSetWindowPlacement\n");
3696 wndpl.
length =
sizeof(wndpl);
3718 TRACE(
"Leave NtUserSetWindowPlacement, ret=%i\n", Ret);
3736 TRACE(
"Enter NtUserSetWindowPlacement\n");
3753 Safepl.
length =
sizeof(Safepl);
3755 if (Safepl.
length !=
sizeof(Safepl))
3775 TRACE(
"Leave NtUserSetWindowPlacement, ret=%i\n", Ret);
3791 TRACE(
"Enter NtUserShowWindowAsync\n");
3812 TRACE(
"Leave NtUserShowWindowAsync, ret=%i\n",
ret);
3827 TRACE(
"Enter NtUserShowWindow hWnd %p SW_ %d\n",
hWnd, nCmdShow);
3847 TRACE(
"Leave NtUserShowWindow, ret=%i\n",
ret);
3865 TRACE(
"Enter NtUserWindowFromPoint\n");
3889 TRACE(
"Leave NtUserWindowFromPoint, ret=%p\n", Ret);
3914 POINT maxs, mint, maxt;
3936 ERR(
"Unexpected snap edge %#x\n", Edge);
3962 else if (wasSnapped)
4008 ERR(
"Unexpected snap edge %#x\n", Edge);
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
GLint GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
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 WNDS2_WIN31COMPAT
#define WNDS_BEINGACTIVATED
#define UserHMGetHandle(obj)
#define WNDS_MAXIMIZESTOMONITOR
#define WNDS_ERASEBACKGROUND
#define WS_EX2_VERTICALLYMAXIMIZEDLEFT
#define WNDS_SENDSIZEMOVEMSGS
#define WS_EX2_VERTICALLYMAXIMIZEDRIGHT
#define WNDS_SENDERASEBACKGROUND
#define EXCEPTION_EXECUTE_HANDLER
#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)
VOID FASTCALL IntSetSnapInfo(PWND Wnd, UINT Edge, IN const RECT *Pos OPTIONAL)
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)
VOID FASTCALL co_IntSnapWindow(PWND Wnd, UINT Edge)
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 co_IntCalculateSnapPosition(PWND Wnd, UINT Edge, OUT RECT *Pos)
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)
UINT FASTCALL IntGetWindowSnapEdge(PWND Wnd)
HDWP FASTCALL IntDeferWindowPos(HDWP hdwp, HWND hwnd, HWND hwndAfter, INT x, INT y, INT cx, INT cy, UINT flags)
VOID FASTCALL IntSetSnapEdge(PWND Wnd, UINT Edge)
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::@5275 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 BOOL RECTL_bIsEmptyRect(_In_ const RECTL *prcl)
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)
BOOL FASTCALL UserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
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 BOOLEAN IntIsWindowSnapped(PWND Wnd)
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