14 #define MINMAX_NOSWP (0x00010000) 16 #define SWP_EX_NOCOPY 0x0001 17 #define SWP_EX_PAINTSELF 0x0002 19 #define SWP_AGG_NOGEOMETRYCHANGE \ 20 (SWP_NOSIZE | SWP_NOCLIENTSIZE | SWP_NOZORDER) 21 #define SWP_AGG_NOPOSCHANGE \ 22 (SWP_NOSIZE | SWP_NOMOVE | SWP_NOCLIENTSIZE | SWP_NOCLIENTMOVE | SWP_NOZORDER) 23 #define SWP_AGG_STATUSFLAGS \ 24 (SWP_AGG_NOPOSCHANGE | SWP_FRAMECHANGED | SWP_HIDEWINDOW | SWP_SHOWWINDOW) 25 #define SWP_AGG_NOCLIENTCHANGE \ 26 (SWP_NOCLIENTSIZE | SWP_NOCLIENTMOVE) 28 #define EMPTYPOINT(pt) ((pt).x == -1 && (pt).y == -1) 29 #define PLACE_MIN 0x0001 30 #define PLACE_MAX 0x0002 31 #define PLACE_RECT 0x0004 124 if (!Wnd)
return FALSE;
145 BOOL mirror_from, mirror_to;
152 mirror_from = mirror_to =
FALSE;
180 for (
i = 0;
i != cPoints;
i++)
183 lpPoints[
i].
x *= Change;
187 if ((mirror_from || mirror_to) && cPoints == 2)
189 int tmp =
min(lpPoints[0].
x, lpPoints[1].
x);
190 lpPoints[1].
x =
max(lpPoints[0].
x, lpPoints[1].
x);
277 Window->hrgnClip = hRgnClip;
286 BOOL ActivePrev, FindTopWnd;
287 PWND pWndTopMost, pWndChild, pWndSetActive, pWndTemp, pWndDesk;
305 pWndSetActive = pWndChild;
325 if (!pWndTemp ) pWndTemp = pWndSetActive;
330 pWndSetActive = pWndChild;
333 pWndSetActive = pWndSetActive->
spwndNext;
336 if ( !FindTopWnd )
break;
353 if ((pWndSetActive = pWndTemp))
376 if (!Wnd)
return FALSE;
412 TRACE(
"WPAOW Popup with Owner\n");
432 WndTo = Wnd->
head.pti->MessageQueue->spwndActivePrev;
530 WorkArea = pmonitor->
rcWork;
558 if (!Wnd)
return FALSE;
626 if (!pmonitor)
return;
732 INT x,
y, xspacing, yspacing, sx, sy;
756 Child->InternalPos.IconPos.x = sx;
757 Child->InternalPos.IconPos.y = sy;
764 if (
x <= rectParent.
right - xspacing)
781 PWND pwndChild, pwndParent;
782 int x,
y, xspacing, yspacing;
784 pwndParent =
Window->spwndParent;
787 ERR(
"FIXME: Parent is Desktop, Min off screen!\n");
811 if (pwndChild ==
Window)
continue;
822 if (
x <= rectParent.
right - xspacing)
836 TRACE(
"Position is set! X:%d Y:%d\n",
Pos->x,
Pos->y);
954 adjustedStyle =
style;
965 xinc = yinc = adjust;
1011 rc_work = monitor->
rcWork;
1017 MinMax.ptMaxSize.x = (rc_work.
right - rc_work.
left) + 2 * xinc;
1018 MinMax.ptMaxSize.y = (rc_work.
bottom - rc_work.
top) + 2 * yinc;
1020 if (MinMax.ptMaxPosition.x == -xinc && MinMax.ptMaxPosition.y == -yinc)
1022 MinMax.ptMaxPosition.x = rc_work.
left - xinc;
1023 MinMax.ptMaxPosition.y = rc_work.
top - yinc;
1035 MinMax.ptMaxTrackSize.x =
max(MinMax.ptMaxTrackSize.x,
1036 MinMax.ptMinTrackSize.x);
1037 MinMax.ptMaxTrackSize.y =
max(MinMax.ptMaxTrackSize.y,
1038 MinMax.ptMinTrackSize.y);
1041 *MaxSize = MinMax.ptMaxSize;
1043 *MaxPos = MinMax.ptMaxPosition;
1045 *MinTrack = MinMax.ptMinTrackSize;
1047 *MaxTrack = MinMax.ptMaxTrackSize;
1080 if (ClientRect->
left < WindowRect->
left)
1082 ClientRect->
left = WindowRect->
left;
1084 else if (WindowRect->
right < ClientRect->
left)
1088 if (ClientRect->
right < WindowRect->
left)
1092 else if (WindowRect->
right < ClientRect->
right)
1096 if (ClientRect->
top < WindowRect->
top)
1098 ClientRect->
top = WindowRect->
top;
1100 else if (WindowRect->
bottom < ClientRect->
top)
1104 if (ClientRect->
bottom < WindowRect->
top)
1145 valid[0] = *new_client;
1146 valid[1] = *old_client;
1190 params.rgrc[0] = *WindowRect;
1202 params.lppos = &winposCopy;
1203 winposCopy = *WinPos;
1211 *ClientRect =
params.rgrc[0];
1219 if (ClientRect->
left !=
Window->rcClient.left ||
1220 ClientRect->
top !=
Window->rcClient.top)
1239 validRects[0] =
params.rgrc[1];
1240 validRects[1] =
params.rgrc[2];
1245 (ClientRect->
left !=
Window->rcClient.left ||
1246 ClientRect->
top !=
Window->rcClient.top))
1276 TRACE(
"Sending WM_WINDOWPOSCHANGING to hwnd %p flags %04x.\n",
Window->head.h,WinPos->
flags);
1282 *WindowRect =
Window->rcWindow;
1294 WindowRect->
right = WindowRect->
left + WinPos->
cx;
1295 WindowRect->
bottom = WindowRect->
top + WinPos->
cy;
1313 TRACE(
"Not SWP_NOMOVE 1 Parent client offset X %d Y %d\n",
X,
Y);
1316 TRACE(
"Not SWP_NOMOVE 2 Parent client offset X %d Y %d\n",
X,
Y);
1319 WindowRect->
left =
X;
1320 WindowRect->
top =
Y;
1329 TRACE(
"hwnd %p, after %p, swp %d,%d %dx%d flags %08x\n",
1331 WinPos->
cx, WinPos->
cy, WinPos->
flags );
1360 TRACE(
"(%p) hInsertAfter = %p\n",
Window, hWndInsertAfter );
1366 TRACE(
"Window is child\n");
1367 return hWndInsertAfter;
1395 if (
i > 0) hWndInsertAfter =
List[
i-1];
1402 if (!topmost)
break;
1404 else if (
List[
i] == hWndInsertAfter)
break;
1408 return hWndInsertAfter;
1414 ERR(
"Window is HWND_BOTTOM hwnd %p\n",hWndInsertAfter);
1433 TRACE(
"skip all the topmost windows\n");
1445 if (
List[
i] == hWndInsertAfter)
break;
1475 hWndInsertAfter =
List[
i];
1480 return hWndInsertAfter;
1497 TRACE(
"InternalMoveWin X %d Y %d\n", MoveX, MoveY);
1499 Window->rcWindow.left += MoveX;
1500 Window->rcWindow.right += MoveX;
1501 Window->rcWindow.top += MoveY;
1502 Window->rcWindow.bottom += MoveY;
1504 Window->rcClient.left += MoveX;
1505 Window->rcClient.right += MoveX;
1506 Window->rcClient.top += MoveY;
1507 Window->rcClient.bottom += MoveY;
1528 if (WinPos->
x < -32768) WinPos->
x = -32768;
1529 else if (WinPos->
x > 32767) WinPos->
x = 32767;
1530 if (WinPos->
y < -32768) WinPos->
y = -32768;
1531 else if (WinPos->
y > 32767) WinPos->
y = 32767;
1533 WinPos->
cx =
max(WinPos->
cx, 0);
1534 WinPos->
cy =
max(WinPos->
cy, 0);
1558 TRACE(
"WPFU C2S wpx %d wpy %d ptx %d pty %d\n",WinPos->
x,WinPos->
y,
pt.x,
pt.y);
1722 HWND WndInsertAfter,
1731 RECTL NewWindowRect;
1732 RECTL NewClientRect;
1733 RECTL valid_rects[2];
1739 RECTL OldWindowRect, OldClientRect;
1744 BOOL bPointerInWindow, PosChanged =
FALSE;
1749 TRACE(
"pwnd %p, after %p, %d,%d (%dx%d), flags 0x%x",
1752 dump_winpos_flags(
flags);
1793 TRACE(
"WinPosSetWindowPos: Invalid handle 0x%p!\n",WinPos.
hwnd);
1823 if ( VisBefore !=
NULL &&
1840 if ( VisBeforeJustClient !=
NULL &&
1844 VisBeforeJustClient =
NULL;
1846 else if(VisBeforeJustClient)
1855 if (
Window->hrgnNewFrame)
1873 OldWindowRect =
Window->rcWindow;
1874 OldClientRect =
Window->rcClient;
1876 if (NewClientRect.
left != OldClientRect.
left ||
1877 NewClientRect.
top != OldClientRect.
top)
1881 NewClientRect.
left - OldClientRect.
left,
1882 NewClientRect.
top - OldClientRect.
top);
1886 Window->rcWindow = NewWindowRect;
1887 Window->rcClient = NewClientRect;
1902 Window->head.pti->cVisWindows--;
1926 Window->head.pti->cVisWindows++;
1933 NewWindowRect.
left - OldWindowRect.
left,
1934 NewWindowRect.
top - OldWindowRect.
top);
1953 if ( VisAfter !=
NULL &&
1971 if ( ( VisBefore !=
NULL &&
1990 else if (VisBeforeJustClient !=
NULL)
1995 if (VisBeforeJustClient !=
NULL)
2024 else if ( OldWindowRect.
left != NewWindowRect.
left ||
2025 OldWindowRect.
top != NewWindowRect.
top ||
2068 if (VisAfter !=
NULL)
2118 TRACE(
"SWP_FRAMECHANGED win child %p Parent %p\n",pwnd,
Parent);
2137 TRACE(
"SWP_FRAMECHANGED win %p hRgn %p\n",pwnd, DcRgn);
2156 if ( VisBefore !=
NULL )
2163 OldWindowRect.
left - NewWindowRect.
left,
2164 OldWindowRect.
top - NewWindowRect.
top);
2166 if ( VisAfter !=
NULL )
2178 if (VisAfter !=
NULL)
2219 if ( VisBefore ==
NULL &&
2220 VisBeforeJustClient ==
NULL &&
2224 TRACE(
"No drawing, set no Z order and no redraw!\n");
2258 WinPos.
x = NewWindowRect.
left;
2259 WinPos.
y = NewWindowRect.
top;
2260 WinPos.
cx = NewWindowRect.
right - NewWindowRect.
left;
2261 WinPos.
cy = NewWindowRect.
bottom - NewWindowRect.
top;
2262 TRACE(
"WM_WINDOWPOSCHANGED hwnd %p Flags %04x\n",WinPos.
hwnd,WinPos.
flags);
2295 *ClientRect = *WindowRect;
2347 wpl.
length =
sizeof(wpl);
2352 ERR(
"WinPosMinMaximize WH_CBT Call Hook return!\n");
2491 UINT Swp = 0, EventMsg = 0;
2492 RECTL NewPos = {0, 0, 0, 0};
2506 TRACE(
"co_WinPosShowWindow START hwnd %p Cmd %d usicmd %u\n",
2522 TRACE(
"co_WPSW FT 1\n");
2534 TRACE(
"co_WPSW FT 2\n");
2582 EventMsg = EVENT_SYSTEM_MINIMIZESTART;
2605 EventMsg = EVENT_SYSTEM_MINIMIZEEND;
2624 if (WasVisible)
return(
TRUE);
2667 #if 0 // Fix wine msg test_SetParent:WmSetParentSeq_1:2 2683 #if 0 // Explorer issues with common controls? Someone does not know how CS_SAVEBITS works. 2689 ERR(
"WinPosShowWindow Set active\n");
2698 TRACE(
"Child is Vis %s or State changed %s. ShowFlag %s Swp %04x\n",
2700 (ShowFlag ?
"TRUE" :
"FALSE"),
LOWORD(Swp));
2711 TRACE(
"Parent Vis?\n");
2815 for (phWnd =
List; *phWnd; ++phWnd)
2824 if (pwndChild !=
NULL)
2865 if( ScopeWin ==
NULL )
2868 if(ScopeWin ==
NULL)
2899 Pt.
x +=
Parent->rcClient.left;
2907 for (phWnd =
List; *phWnd; phWnd++)
2926 return pwndHit ? pwndHit :
Parent;
2942 Pt.
x =
Parent->rcClient.right - Pt.
x;
2944 Pt.
x +=
Parent->rcClient.left;
2952 for (phWnd =
List; *phWnd; phWnd++)
2977 return pwndHit ? pwndHit :
Parent;
2993 HDWP retvalue = hdwp;
2995 TRACE(
"hdwp %p, hwnd %p, after %p, %d,%d (%dx%d), flags %08x\n",
3014 for (
i = 0;
i < pDWP->
ccvr;
i++)
3054 pDWP->
acvr = newpos;
3077 TRACE(
"%p\n", hdwp);
3085 for (
i = 0, winpos = pDWP->
acvr;
res && i < pDWP->ccvr;
i++, winpos++)
3090 TRACE(
"hwnd %p, after %p, %d,%d (%dx%d), flags %08x\n",
3106 *ppos = winpos->
pos;
3147 TRACE(
"Enter NtUserChildWindowFromPointEx\n");
3154 TRACE(
"Leave NtUserChildWindowFromPointEx\n");
3166 TRACE(
"Enter NtUserEndDeferWindowPosEx\n");
3169 TRACE(
"Leave NtUserEndDeferWindowPosEx, ret=%i\n", Ret);
3180 HWND WndInsertAfter,
3193 TRACE(
"Enter NtUserDeferWindowPos\n");
3208 if ( WndInsertAfter &&
3223 TRACE(
"Leave NtUserDeferWindowPos, ret=%p\n", Ret);
3295 if (!Hit) Ret = wndpl.
showCmd;
3314 TRACE(
"Enter NtUserGetWindowPlacement\n");
3343 TRACE(
"Leave NtUserGetWindowPlacement, ret=%i\n",_ret_);
3357 TRACE(
"Enter NtUserMinMaximize\n");
3377 TRACE(
"Leave NtUserMinMaximize\n");
3408 TRACE(
"Enter NtUserRealChildWindowFromPoint\n");
3415 TRACE(
"Leave NtUserRealChildWindowFromPoint\n");
3425 HWND hWndInsertAfter,
3437 TRACE(
"Enter NtUserSetWindowPos\n");
3443 ERR(
"NtUserSetWindowPos bad window handle!\n");
3447 if ( hWndInsertAfter !=
HWND_TOP &&
3455 ERR(
"NtUserSetWindowPos bad insert window handle!\n");
3463 if (
X < -32768)
X = -32768;
3464 else if (
X > 32767)
X = 32767;
3465 if (
Y < -32768)
Y = -32768;
3466 else if (
Y > 32767)
Y = 32767;
3471 else if (
cx > 32767)
cx = 32767;
3473 else if (
cy > 32767)
cy = 32767;
3483 TRACE(
"Leave NtUserSetWindowPos, ret=%i\n",_ret_);
3497 HRGN hrgnCopy =
NULL;
3503 TRACE(
"Enter NtUserSetWindowRgn\n");
3528 Window->hrgnNewFrame = hrgnCopy;
3540 TRACE(
"Leave NtUserSetWindowRgn, ret=%i\n",_ret_);
3563 TRACE(
"Enter NtUserSetWindowPlacement\n");
3592 wndpl.
length =
sizeof(wndpl);
3614 TRACE(
"Leave NtUserSetWindowPlacement, ret=%i\n",_ret_);
3632 TRACE(
"Enter NtUserSetWindowPlacement\n");
3666 TRACE(
"Leave NtUserSetWindowPlacement, ret=%i\n",_ret_);
3682 TRACE(
"Enter NtUserShowWindowAsync\n");
3705 TRACE(
"Leave NtUserShowWindowAsync, ret=%i\n",_ret_);
3721 TRACE(
"Enter NtUserShowWindow hWnd %p SW_ %d\n",
hWnd, nCmdShow);
3743 TRACE(
"Leave NtUserShowWindow, ret=%i\n",_ret_);
3762 TRACE(
"Enter NtUserWindowFromPoint\n");
3792 TRACE(
"Leave NtUserWindowFromPoint, ret=%p\n", _ret_);
#define RDW_NOINTERNALPAINT
static VOID FASTCALL WinPosFindIconPos(PWND Window, POINT *Pos)
#define ERROR_INVALID_PARAMETER
PUSER_MESSAGE_QUEUE gpqForeground
__kernel_entry W32KAPI HRGN APIENTRY NtGdiCreateRectRgn(_In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom)
BOOL WINAPI ValidateRgn(_In_ HWND, _In_opt_ HRGN)
VOID FASTCALL UserEnterShared(VOID)
PWND APIENTRY IntChildWindowFromPointEx(PWND Parent, LONG x, LONG y, UINT uiFlags)
BOOL APIENTRY NtUserGetWindowPlacement(HWND hWnd, WINDOWPLACEMENT *lpwndpl)
BOOL APIENTRY NtUserShowWindowAsync(HWND hWnd, LONG nCmdShow)
BOOL APIENTRY NtUserShowWindow(HWND hWnd, LONG nCmdShow)
#define ERROR_INVALID_DWP_HANDLE
BOOL FASTCALL UserDeleteObject(HANDLE h, HANDLE_TYPE type)
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
VOID FASTCALL co_MsqInsertMouseMessage(MSG *Msg, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook)
PWND FASTCALL ValidateHwndNoErr(HWND hWnd)
BOOL APIENTRY NtUserMoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint)
BOOL NTAPI GreIsHandleValid(HGDIOBJ hobj)
VOID FASTCALL UserSyncAndPaintWindows(PWND pWnd, ULONG Flags)
struct _WINDOWPLACEMENT WINDOWPLACEMENT
VOID FASTCALL WinPosInitInternalPos(PWND Wnd, RECTL *RestoreRect)
#define SW_SHOWNOACTIVATE
BOOL FASTCALL IntClientToScreen(PWND Wnd, LPPOINT lpPoint)
BOOL FASTCALL IsChildVisible(PWND pWnd)
static void make_rect_onscreen(RECT *rect)
VOID FASTCALL co_VIS_WindowLayoutChanged(PWND Wnd, PREGION NewlyExposed)
FORCEINLINE VOID RECTL_vSetEmptyRect(_Out_ RECTL *prcl)
HWND FASTCALL co_UserSetFocus(PWND Window)
#define UserIsDesktopWindow(pWnd)
VOID FASTCALL RECTL_vInflateRect(_Inout_ RECTL *rect, _In_ INT dx, _In_ INT dy)
struct _WND::@4899 InternalPos
#define CWP_SKIPTRANSPARENT
static void make_point_onscreen(POINT *pt)
#define ASSERT_REFS_CO(_obj_)
VOID UserGetWindowBorders(DWORD Style, DWORD ExStyle, SIZE *Size, BOOL WithClient)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
DWORD IntGetWindowBorders(DWORD Style, DWORD ExStyle)
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
BOOLEAN FASTCALL co_WinPosSetWindowPos(PWND Window, HWND WndInsertAfter, INT x, INT y, INT cx, INT cy, UINT flags)
VOID FASTCALL IntSendNCPaint(PWND pWnd, HRGN hRgn)
#define SWP_AGG_STATUSFLAGS
#define SW_SHOWMINNOACTIVE
BOOL FASTCALL IntGetWindowPlacement(PWND Wnd, WINDOWPLACEMENT *lpwndpl)
#define WS_EX_TRANSPARENT
BOOL APIENTRY NtUserSetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags)
static __inline VOID UserRefObjectCo(PVOID obj, PUSER_REFERENCE_ENTRY UserReferenceEntry)
#define HSHELL_WINDOWCREATED
static BOOL IntValidateParent(PWND Child, PREGION ValidateRgn)
BOOL FASTCALL UserSetActiveWindow(_In_opt_ PWND Wnd)
#define STARTF_USEPOSITION
BOOL FASTCALL IntShowOwnedPopups(PWND OwnerWnd, BOOL fShow)
IN PVOID IN PVOID IN USHORT IN USHORT Size
GLint GLint GLint GLint GLint x
HDC FASTCALL UserGetDCEx(PWND Window OPTIONAL, HANDLE ClipRegion, ULONG Flags)
BOOL FASTCALL UserDereferenceObject(PVOID Object)
BOOL FASTCALL IntEndDeferWindowPosEx(HDWP hdwp, BOOL sAsync)
static BOOL FASTCALL co_WinPosDoWinPosChanging(PWND Window, PWINDOWPOS WinPos, PRECTL WindowRect, PRECTL ClientRect)
#define MmCopyToCaller(x, y, z)
#define WNDS_SENDSIZEMOVEMSGS
BOOL FASTCALL REGION_bOffsetRgn(_Inout_ PREGION prgn, _In_ INT cx, _In_ INT cy)
#define WPF_RESTORETOMAXIMIZED
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical 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
FORCEINLINE BOOL IntPtInWindow(PWND pwnd, INT x, INT y)
INT APIENTRY NtUserSetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)
VOID FASTCALL co_WinPosActivateOtherWindow(PWND Wnd)
DWORD APIENTRY NtUserGetInternalWindowPos(HWND hWnd, LPRECT rectWnd, LPPOINT ptIcon)
PREGION FASTCALL REGION_LockRgn(_In_ HRGN hrgn)
PUSER_MESSAGE_QUEUE FASTCALL IntGetFocusMessageQueue(VOID)
#define SWP_NOSENDCHANGING
HWND APIENTRY NtUserWindowFromPoint(LONG X, LONG Y)
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
#define WNDS_BEINGACTIVATED
HDWP APIENTRY NtUserDeferWindowPos(HDWP WinPosInfo, HWND Wnd, HWND WndInsertAfter, int x, int y, int cx, int cy, UINT Flags)
PMONITOR NTAPI UserMonitorFromRect(PRECTL pRect, DWORD dwFlags)
PREGION FASTCALL IntSysCreateRectpRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect)
VOID FASTCALL IntLinkHwnd(PWND Wnd, HWND hWndPrev)
HWND APIENTRY NtUserChildWindowFromPointEx(HWND hwndParent, LONG x, LONG y, UINT uiFlags)
GLenum const GLfloat * params
DBG_DEFAULT_CHANNEL(UserWinpos)
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
HWND APIENTRY NtUserRealChildWindowFromPoint(HWND Parent, LONG x, LONG y)
static __inline VOID UserDerefObjectCo(PVOID obj)
HWND FASTCALL UserGetShellWindow(VOID)
DWORD APIENTRY NtUserSetInternalWindowPos(HWND hwnd, UINT showCmd, LPRECT lprect, LPPOINT lppt)
#define CWP_SKIPINVISIBLE
static HWND FASTCALL WinPosDoOwnedPopups(PWND Window, HWND hWndInsertAfter)
BOOL FASTCALL IntGetClientOrigin(PWND Window OPTIONAL, LPPOINT Point)
_Out_opt_ int _Out_opt_ int * cy
static LONG FASTCALL co_WinPosDoNCCALCSize(PWND Window, PWINDOWPOS WinPos, RECTL *WindowRect, RECTL *ClientRect, RECTL *validRects)
static PWND co_WinPosSearchChildren(IN PWND ScopeWin, IN POINT *Point, IN OUT USHORT *HitTest, IN BOOL Ignore)
#define HAS_THINFRAME(Style, ExStyle)
#define HAS_THICKFRAME(Style, ExStyle)
#define WS_EX_DLGMODALFRAME
DWORD APIENTRY NtUserMinMaximize(HWND hWnd, UINT cmd, BOOL Hide)
#define SWP_ASYNCWINDOWPOS
_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
__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)
#define STARTF_USESHOWWINDOW
PWND FASTCALL IntGetLastTopMostWindow(VOID)
#define SWP_AGG_NOGEOMETRYCHANGE
PWND FASTCALL UserGetWindowObject(HWND hWnd)
INT FASTCALL IntGdiCombineRgn(PREGION prgnDest, PREGION prgnSrc1, PREGION prgnSrc2, INT iCombineMode)
HWND FASTCALL UserGetForegroundWindow(VOID)
LONG NTAPI UserGetSystemMetrics(ULONG Index)
UINT FASTCALL co_WinPosGetMinMaxInfo(PWND Window, POINT *MaxSize, POINT *MaxPos, POINT *MinTrack, POINT *MaxTrack)
BOOLEAN FASTCALL co_WinPosShowWindow(PWND Wnd, INT Cmd)
VOID FASTCALL UserEnterExclusive(VOID)
#define UserHMGetHandle(obj)
static BOOL FASTCALL WinPosFixupFlags(WINDOWPOS *WinPos, PWND Wnd)
VOID SelectWindowRgn(PWND Window, HRGN hRgnClip)
BOOL APIENTRY NtUserSetWindowPlacement(HWND hWnd, WINDOWPLACEMENT *lpwndpl)
#define ERROR_INVALID_WINDOW_HANDLE
_Must_inspect_result_ _In_ ULONG Flags
UINT FASTCALL co_WinPosArrangeIconicWindows(PWND parent)
Implementation of the Explorer desktop window.
#define NT_SUCCESS(StatCode)
UINT InternalPosInitialized
#define EXCEPTION_EXECUTE_HANDLER
BOOL FASTCALL IntGdiSetRegionOwner(HRGN hRgn, DWORD OwnerMask)
#define WM_WINDOWPOSCHANGING
VOID FASTCALL co_IntPaintWindows(PWND Wnd, ULONG Flags, BOOL Recurse)
#define WPF_SETMINPOSITION
BOOL FASTCALL RECTL_bIntersectRect(_Out_ RECTL *prclDst, _In_ const RECTL *prcl1, _In_ const RECTL *prcl2)
void FASTCALL co_WinPosSendSizeMove(PWND Wnd)
#define DECLARE_RETURN(type)
BOOL FASTCALL IntIsWindow(HWND hWnd)
#define UserIsMessageWindow(pWnd)
#define ExAllocatePoolWithTag(hernya, size, tag)
__kernel_entry W32KAPI INT APIENTRY NtGdiOffsetRgn(_In_ HRGN hrgn, _In_ INT cx, _In_ INT cy)
LRESULT APIENTRY co_HOOK_CallHooks(INT HookId, INT Code, WPARAM wParam, LPARAM lParam)
FORCEINLINE BOOL RECTL_bPointInRect(_In_ const RECTL *prcl, _In_ INT x, _In_ INT y)
VOID FASTCALL IntInvalidateWindows(PWND Wnd, PREGION Rgn, ULONG Flags)
PWND FASTCALL UserGetDesktopWindow(VOID)
BOOL FASTCALL IntIsWindowVisible(PWND Wnd)
VOID FASTCALL DceResetActiveDCEs(PWND Window)
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
LRESULT FASTCALL co_IntSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
_Must_inspect_result_ _In_ WDFCMRESLIST List
static VOID FASTCALL WinPosInternalMoveWindow(PWND Window, INT MoveX, INT MoveY)
HWND *FASTCALL IntWinListChildren(PWND Window)
BOOL FASTCALL IntScreenToClient(PWND Wnd, LPPOINT lpPoint)
#define GDI_OBJ_HMGR_POWNED
BOOL UserHasWindowEdge(DWORD Style, DWORD ExStyle)
VOID FASTCALL SetLastNtError(NTSTATUS Status)
__kernel_entry W32KAPI INT APIENTRY NtGdiCombineRgn(_In_ HRGN hrgnDst, _In_ HRGN hrgnSrc1, _In_opt_ HRGN hrgnSrc2, _In_ INT iMode)
PWND FASTCALL UserGetAncestor(PWND Wnd, UINT Type)
#define HSHELL_WINDOWDESTROYED
BOOL FASTCALL ActivateOtherWindowMin(PWND Wnd)
struct _USER_MESSAGE_QUEUE * MessageQueue
FORCEINLINE VOID RECTL_vOffsetRect(_Inout_ RECTL *prcl, _In_ INT cx, _In_ INT cy)
INT FASTCALL IntMapWindowPoints(PWND FromWnd, PWND ToWnd, LPPOINT lpPoints, UINT cPoints)
VOID FASTCALL UserLeave(VOID)
HWND FASTCALL IntGetDesktopWindow(VOID)
FORCEINLINE VOID RECTL_vSetRect(_Out_ RECTL *prcl, _In_ LONG left, _In_ LONG top, _In_ LONG right, _In_ LONG bottom)
VOID FASTCALL IntSetFocusMessageQueue(PUSER_MESSAGE_QUEUE NewQueue)
HDWP FASTCALL IntDeferWindowPos(HDWP hdwp, HWND hwnd, HWND hwndAfter, INT x, INT y, INT cx, INT cy, UINT flags)
static VOID FASTCALL FixClientRect(PRECTL ClientRect, PRECTL WindowRect)
#define IntIsDesktopWindow(WndObj)
BOOL APIENTRY NtUserEndDeferWindowPosEx(HDWP WinPosInfo, DWORD Unknown1)
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
PVOID UserGetObject(PUSER_HANDLE_TABLE ht, HANDLE handle, HANDLE_TYPE type)
#define SWP_AGG_NOCLIENTCHANGE
BOOL FASTCALL co_UserRedrawWindow(PWND Window, const RECTL *UpdateRect, PREGION UpdateRgn, ULONG Flags)
VOID FASTCALL IntGetWindowBorderMeasures(PWND Wnd, UINT *cx, UINT *cy)
LRESULT FASTCALL co_IntSendMessageNoWait(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
#define WNDS2_WIN31COMPAT
#define GDI_OBJ_HMGR_PUBLIC
_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
VOID FASTCALL IntEngWindowChanged(_In_ struct _WND *Window, _In_ FLONG flChanged)
INT FASTCALL UserReleaseDC(PWND Window, HDC hDc, BOOL EndPaint)
HWND FASTCALL IntGetWindow(HWND hWnd, UINT uCmd)
VOID co_IntShellHookNotify(WPARAM Message, WPARAM wParam, LPARAM lParam)
GLint GLint GLint GLint GLint GLint y
PREGION FASTCALL VIS_ComputeVisibleRegion(PWND Wnd, BOOLEAN ClientArea, BOOLEAN ClipChildren, BOOLEAN ClipSiblings)
#define WNDS_SENDERASEBACKGROUND
#define WM_WINDOWPOSCHANGED
#define WNDS_MAXIMIZESTOMONITOR
UINT FASTCALL co_WinPosMinMaximize(PWND Wnd, UINT ShowFlag, RECT *NewPos)
VOID FASTCALL REGION_UnlockRgn(_In_ PREGION prgn)
PMONITOR NTAPI UserGetPrimaryMonitor(VOID)
BOOL WINAPI CopyRect(_Out_ LPRECT, _In_ LPCRECT)
VOID ForceNCPaintErase(PWND Wnd, HRGN hRgn, PREGION pRgn)
struct _WND * spwndParent
BOOL FASTCALL IntSetWindowPlacement(PWND Wnd, WINDOWPLACEMENT *wpl, UINT Flags)
ULONG FASTCALL IntSetStyle(PWND pwnd, ULONG set_bits, ULONG clear_bits)
#define WNDS_ERASEBACKGROUND
#define HAS_DLGFRAME(Style, ExStyle)
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
#define SWP_AGG_NOPOSCHANGE
#define _SEH2_EXCEPT(...)
static VOID FASTCALL get_valid_rects(RECTL *old_client, RECTL *new_client, UINT flags, RECTL *valid)
INT FASTCALL REGION_Complexity(PREGION prgn)
GLdouble GLdouble GLdouble GLdouble top
#define ExFreePoolWithTag(_P, _T)
#define _SEH2_GetExceptionCode()
#define _SEH2_YIELD(__stmt)
PWND FASTCALL VerifyWnd(PWND pWnd)
INT FASTCALL REGION_GetRgnBox(PREGION Rgn, PRECTL pRect)
BOOL FASTCALL co_IntSetForegroundWindow(PWND Window)
static BOOL FASTCALL can_activate_window(PWND Wnd OPTIONAL)
PUSER_HANDLE_TABLE gHandleTable
#define CopyRgn(hrgnDst, hrgnSrc)
VOID FASTCALL REGION_Delete(PREGION pRgn)
VOID FASTCALL IntGetClientRect(PWND Wnd, RECTL *Rect)
VOID FASTCALL UpdateShellHook(PWND Window)
#define ERROR_INVALID_FLAGS
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
PWND FASTCALL IntGetThreadDesktopWindow(PTHREADINFO pti)
LRESULT FASTCALL co_WinPosGetNonClientSize(PWND Window, RECT *WindowRect, RECT *ClientRect)
PWND APIENTRY co_WinPosWindowFromPoint(IN PWND ScopeWin, IN POINT *WinPoint, IN OUT USHORT *HitTest, IN BOOL Ignore)
VOID FASTCALL UserReferenceObject(PVOID obj)
PWND FASTCALL IntRealChildWindowFromPoint(PWND Parent, LONG x, LONG y)
#define SWP_NOOWNERZORDER
PULONG MinorVersion OPTIONAL
BOOL FASTCALL IntGetWindowRect(PWND Wnd, RECTL *Rect)