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--;
1917 Window->head.pti->cVisWindows++;
1924 NewWindowRect.
left - OldWindowRect.
left,
1925 NewWindowRect.
top - OldWindowRect.
top);
1944 if ( VisAfter !=
NULL &&
1962 if ( ( VisBefore !=
NULL &&
1981 else if (VisBeforeJustClient !=
NULL)
1986 if (VisBeforeJustClient !=
NULL)
2015 else if ( OldWindowRect.
left != NewWindowRect.
left ||
2016 OldWindowRect.
top != NewWindowRect.
top ||
2059 if (VisAfter !=
NULL)
2109 TRACE(
"SWP_FRAMECHANGED win child %p Parent %p\n",pwnd,
Parent);
2128 TRACE(
"SWP_FRAMECHANGED win %p hRgn %p\n",pwnd, DcRgn);
2147 if ( VisBefore !=
NULL )
2154 OldWindowRect.
left - NewWindowRect.
left,
2155 OldWindowRect.
top - NewWindowRect.
top);
2157 if ( VisAfter !=
NULL )
2169 if (VisAfter !=
NULL)
2210 if ( VisBefore ==
NULL &&
2211 VisBeforeJustClient ==
NULL &&
2215 TRACE(
"No drawing, set no Z order and no redraw!\n");
2249 WinPos.
x = NewWindowRect.
left;
2250 WinPos.
y = NewWindowRect.
top;
2251 WinPos.
cx = NewWindowRect.
right - NewWindowRect.
left;
2252 WinPos.
cy = NewWindowRect.
bottom - NewWindowRect.
top;
2253 TRACE(
"WM_WINDOWPOSCHANGED hwnd %p Flags %04x\n",WinPos.
hwnd,WinPos.
flags);
2286 *ClientRect = *WindowRect;
2338 wpl.
length =
sizeof(wpl);
2343 ERR(
"WinPosMinMaximize WH_CBT Call Hook return!\n");
2482 UINT Swp = 0, EventMsg = 0;
2483 RECTL NewPos = {0, 0, 0, 0};
2497 TRACE(
"co_WinPosShowWindow START hwnd %p Cmd %d usicmd %u\n",
2513 TRACE(
"co_WPSW FT 1\n");
2525 TRACE(
"co_WPSW FT 2\n");
2574 EventMsg = EVENT_SYSTEM_MINIMIZESTART;
2597 EventMsg = EVENT_SYSTEM_MINIMIZEEND;
2616 if (WasVisible)
return(
TRUE);
2659 #if 0 // Fix wine msg test_SetParent:WmSetParentSeq_1:2 2675 #if 0 // Explorer issues with common controls? Someone does not know how CS_SAVEBITS works. 2681 ERR(
"WinPosShowWindow Set active\n");
2690 TRACE(
"Child is Vis %s or State changed %s. ShowFlag %s Swp %04x\n",
2692 (ShowFlag ?
"TRUE" :
"FALSE"),
LOWORD(Swp));
2703 TRACE(
"Parent Vis?\n");
2807 for (phWnd =
List; *phWnd; ++phWnd)
2816 if (pwndChild !=
NULL)
2857 if( ScopeWin ==
NULL )
2860 if(ScopeWin ==
NULL)
2891 Pt.
x +=
Parent->rcClient.left;
2899 for (phWnd =
List; *phWnd; phWnd++)
2918 return pwndHit ? pwndHit :
Parent;
2934 Pt.
x =
Parent->rcClient.right - Pt.
x;
2936 Pt.
x +=
Parent->rcClient.left;
2944 for (phWnd =
List; *phWnd; phWnd++)
2969 return pwndHit ? pwndHit :
Parent;
2985 HDWP retvalue = hdwp;
2987 TRACE(
"hdwp %p, hwnd %p, after %p, %d,%d (%dx%d), flags %08x\n",
3006 for (
i = 0;
i < pDWP->
ccvr;
i++)
3046 pDWP->
acvr = newpos;
3069 TRACE(
"%p\n", hdwp);
3077 for (
i = 0, winpos = pDWP->
acvr;
res && i < pDWP->ccvr;
i++, winpos++)
3082 TRACE(
"hwnd %p, after %p, %d,%d (%dx%d), flags %08x\n",
3098 *ppos = winpos->
pos;
3139 TRACE(
"Enter NtUserChildWindowFromPointEx\n");
3146 TRACE(
"Leave NtUserChildWindowFromPointEx\n");
3158 TRACE(
"Enter NtUserEndDeferWindowPosEx\n");
3161 TRACE(
"Leave NtUserEndDeferWindowPosEx, ret=%i\n", Ret);
3172 HWND WndInsertAfter,
3185 TRACE(
"Enter NtUserDeferWindowPos\n");
3200 if ( WndInsertAfter &&
3215 TRACE(
"Leave NtUserDeferWindowPos, ret=%p\n", Ret);
3287 if (!Hit) Ret = wndpl.
showCmd;
3306 TRACE(
"Enter NtUserGetWindowPlacement\n");
3335 TRACE(
"Leave NtUserGetWindowPlacement, ret=%i\n",_ret_);
3349 TRACE(
"Enter NtUserMinMaximize\n");
3369 TRACE(
"Leave NtUserMinMaximize\n");
3400 TRACE(
"Enter NtUserRealChildWindowFromPoint\n");
3407 TRACE(
"Leave NtUserRealChildWindowFromPoint\n");
3417 HWND hWndInsertAfter,
3429 TRACE(
"Enter NtUserSetWindowPos\n");
3435 ERR(
"NtUserSetWindowPos bad window handle!\n");
3439 if ( hWndInsertAfter !=
HWND_TOP &&
3447 ERR(
"NtUserSetWindowPos bad insert window handle!\n");
3455 if (
X < -32768)
X = -32768;
3456 else if (
X > 32767)
X = 32767;
3457 if (
Y < -32768)
Y = -32768;
3458 else if (
Y > 32767)
Y = 32767;
3463 else if (
cx > 32767)
cx = 32767;
3465 else if (
cy > 32767)
cy = 32767;
3475 TRACE(
"Leave NtUserSetWindowPos, ret=%i\n",_ret_);
3489 HRGN hrgnCopy =
NULL;
3495 TRACE(
"Enter NtUserSetWindowRgn\n");
3520 Window->hrgnNewFrame = hrgnCopy;
3532 TRACE(
"Leave NtUserSetWindowRgn, ret=%i\n",_ret_);
3555 TRACE(
"Enter NtUserSetWindowPlacement\n");
3584 wndpl.
length =
sizeof(wndpl);
3606 TRACE(
"Leave NtUserSetWindowPlacement, ret=%i\n",_ret_);
3624 TRACE(
"Enter NtUserSetWindowPlacement\n");
3658 TRACE(
"Leave NtUserSetWindowPlacement, ret=%i\n",_ret_);
3674 TRACE(
"Enter NtUserShowWindowAsync\n");
3697 TRACE(
"Leave NtUserShowWindowAsync, ret=%i\n",_ret_);
3713 TRACE(
"Enter NtUserShowWindow hWnd %p SW_ %d\n",
hWnd, nCmdShow);
3735 TRACE(
"Leave NtUserShowWindow, ret=%i\n",_ret_);
3754 TRACE(
"Enter NtUserWindowFromPoint\n");
3784 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)
#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)
#define EXCEPTION_EXECUTE_HANDLER
_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
#define _SEH2_YIELD(STMT_)
UINT FASTCALL co_WinPosArrangeIconicWindows(PWND parent)
Implementation of the Explorer desktop window.
#define NT_SUCCESS(StatCode)
UINT InternalPosInitialized
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