14 #define UserHasDlgFrameStyle(Style, ExStyle) \ 15 (((ExStyle) & WS_EX_DLGMODALFRAME) || \ 16 (((Style) & WS_DLGFRAME) && (!((Style) & WS_THICKFRAME)))) 18 #define UserHasThickFrameStyle(Style, ExStyle) \ 19 (((Style) & WS_THICKFRAME) && \ 20 (!(((Style) & (WS_DLGFRAME | WS_BORDER)) == WS_DLGFRAME))) 22 #define UserHasThinFrameStyle(Style, ExStyle) \ 23 (((Style) & WS_BORDER) || (!((Style) & (WS_CHILD | WS_POPUP)))) 25 #define ON_LEFT_BORDER(hit) \ 26 (((hit) == HTLEFT) || ((hit) == HTTOPLEFT) || ((hit) == HTBOTTOMLEFT)) 27 #define ON_RIGHT_BORDER(hit) \ 28 (((hit) == HTRIGHT) || ((hit) == HTTOPRIGHT) || ((hit) == HTBOTTOMRIGHT)) 29 #define ON_TOP_BORDER(hit) \ 30 (((hit) == HTTOP) || ((hit) == HTTOPLEFT) || ((hit) == HTTOPRIGHT)) 31 #define ON_BOTTOM_BORDER(hit) \ 32 (((hit) == HTBOTTOM) || ((hit) == HTBOTTOMLEFT) || ((hit) == HTBOTTOMRIGHT)) 34 #define HASSIZEGRIP(Style, ExStyle, ParentStyle, WindowRect, ParentClientRect) \ 35 ((!(Style & WS_CHILD) && (Style & WS_THICKFRAME) && !(Style & WS_MAXIMIZE)) || \ 36 ((Style & WS_CHILD) && (ParentStyle & WS_THICKFRAME) && !(ParentStyle & WS_MAXIMIZE) && \ 37 (WindowRect.right - WindowRect.left == ParentClientRect.right) && \ 38 (WindowRect.bottom - WindowRect.top == ParentClientRect.bottom))) 242 RECT sizingRect, mouseRect, origRect, unmodRect;
246 POINT minTrack, maxTrack;
259 DWORD ExStyleTB, StyleTB;
280 TRACE(
"pwnd %p command %04lx, hittest %d, pos %d,%d\n",
281 pwnd, syscommand, hittest,
pt.x,
pt.y);
286 if (!hittest)
return;
290 if (!thickframe)
return;
311 origRect = sizingRect;
318 unmodRect = sizingRect;
330 unmodRect = sizingRect;
345 mouseRect.
top =
max( mouseRect.
top, sizingRect.
bottom-maxTrack.
y+capturePoint.
y-sizingRect.
top );
350 mouseRect.
top =
max( mouseRect.
top, sizingRect.
top+minTrack.
y+capturePoint.
y-sizingRect.
bottom );
401 TRACE(
"ExStyle is '%x'.\n", ExStyleTB);
406 TRACE(
"Style is '%x'.\n", StyleTB);
411 TRACE(
"This %s the TaskBar.\n", IsTaskBar ?
"is" :
"is not");
426 if (
pt.x <= snapRect.
left)
452 if (
pt.y <= snapRect.
top)
491 dx =
pt.x - capturePoint.
x;
492 dy =
pt.y - capturePoint.
y;
504 else if(!DragFullWindows)
511 RECT newRect = unmodRect;
575 if (!DragFullWindows)
591 newRect.right - newRect.left,
592 newRect.bottom - newRect.top,
620 sizingRect = newRect;
643 else if ( moved && !DragFullWindows )
653 ERR(
"DoSizeMove : WH_CBT Call Hook return!\n");
674 if (!DragFullWindows || iconic )
680 sizingRect.right - sizingRect.left,
681 sizingRect.bottom - sizingRect.top,
687 if ( DragFullWindows )
877 WindowRect.
left = WindowRect.
top = 0;
939 RECT WindowRect, CurrentRect, TempRect;
946 TRACE(
"UserDrawCaptionBar: pWnd %p, hDc %p, Flags 0x%x.\n", pWnd,
hDC,
Flags);
953 CurrentRect.
top = CurrentRect.
left = 0;
984 TempRect = CurrentRect;
990 Flags |= DC_GRADIENT;
1049 TempRect = CurrentRect;
1079 RECT WindowRect, CurrentRect, TempRect;
1115 CurrentRect.
top = CurrentRect.
left = 0;
1157 Flags |= DC_GRADIENT;
1166 ERR(
"Wnd is active and not set active!\n");
1170 TempRect = CurrentRect;
1224 TempRect = CurrentRect;
1240 RECT ParentClientRect;
1242 TempRect = CurrentRect;
1345 CliRect.
top -= OrigRect.
top;
1539 if (Pressed != OldState)
1688 mouseRect.bottom - mouseRect.top,
1739 #if 0 // Old version, kept there for reference, which is also used 1748 RECT WindowRect, ClientRect, OrigWndRect;
1759 OrigWndRect = WindowRect;
1879 ClientPoint =
Point;
1883 if (
PtInRect(&ClientRect, ClientPoint))
1903 RECT ParentRect, TempRect = WindowRect, TempRect2 = WindowRect;
1922 TempRect.
top = TempRect2.top;
1923 TempRect.
bottom = TempRect2.bottom;
1939 RECT TempRect = WindowRect;
1950 RECT TempRect = WindowRect;
1965 RECT rcWindow, rcClient;
2000 if (
pt.y < rcWindow.
top)
2014 if (
pt.x < rcWindow.
left)
PUSER_MESSAGE_QUEUE gpqForeground
__kernel_entry W32KAPI HRGN APIENTRY NtGdiCreateRectRgn(_In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom)
GLint GLint GLsizei width
#define MSQ_STATE_MOVESIZE
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL UserDrawIconEx(HDC hDc, INT xLeft, INT yTop, PCURICON_OBJECT pIcon, INT cxWidth, INT cyHeight, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags)
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
#define TIF_MOVESIZETRACKING
#define COLOR_WINDOWFRAME
#define STATE_SYSTEM_OFFSCREEN
BOOL NTAPI GreIsHandleValid(HGDIOBJ hobj)
BOOL FASTCALL IntClientToScreen(PWND Wnd, LPPOINT lpPoint)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiPatBlt(_In_ HDC hdcDest, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_ DWORD dwRop)
FORCEINLINE VOID RECTL_vSetEmptyRect(_Out_ RECTL *prcl)
PCURICON_OBJECT FASTCALL UserGetCurIconObject(HCURSOR hCurIcon)
LRESULT FASTCALL IntDispatchMessage(PMSG pMsg)
HGDIOBJ FASTCALL IntGetSysColorBrush(INT Object)
PVOID UserGetObjectNoErr(PUSER_HANDLE_TABLE ht, HANDLE handle, HANDLE_TYPE type)
#define UserIsDesktopWindow(pWnd)
BOOL FASTCALL IntReleaseCapture(VOID)
VOID FASTCALL RECTL_vInflateRect(_Inout_ RECTL *rect, _In_ INT dx, _In_ INT dy)
HWND FASTCALL UserGetActiveWindow(VOID)
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
#define WNDS_HASHORIZONTALSCROLLBAR
BOOL FASTCALL IntTranslateKbdMessage(LPMSG lpMsg, UINT flags)
BOOL IntIsScrollBarVisible(PWND pWnd, INT hBar)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
__kernel_entry W32KAPI HANDLE APIENTRY NtGdiGetStockObject(_In_ INT iObject)
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
BOOLEAN FASTCALL co_WinPosSetWindowPos(PWND Window, HWND WndInsertAfter, INT x, INT y, INT cx, INT cy, UINT flags)
#define COLOR_INACTIVEBORDER
void FASTCALL NC_GetSysPopupPos(PWND Wnd, RECT *Rect)
#define COLOR_INACTIVECAPTION
#define COLOR_CAPTIONTEXT
#define COLOR_BTNHIGHLIGHT
HDC FASTCALL UserGetWindowDC(PWND Wnd)
int UserShowCursor(BOOL bShow)
BOOL UserHasWindowEdge(DWORD Style, DWORD ExStyle)
HDC FASTCALL UserGetDCEx(PWND Window OPTIONAL, HANDLE ClipRegion, ULONG Flags)
BOOL FASTCALL UserDereferenceObject(PVOID Object)
BOOL WINAPI DrawFrameControl(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
BOOL FASTCALL IntCallMsgFilter(LPMSG lpmsg, INT code)
_In_ HFONT _Out_ PUINT Height
#define GetWindowLongPtrW
VOID FASTCALL IntGetClientRect(PWND WindowObject, RECTL *Rect)
VOID UserDrawCaptionButtonWnd(PWND pWnd, HDC hDC, BOOL bDown, ULONG Type)
VOID UserDrawCaptionButton(PWND pWnd, LPRECT Rect, DWORD Style, DWORD ExStyle, HDC hDC, BOOL bDown, ULONG Type)
#define WS_EX_LEFTSCROLLBAR
BOOL UserSetCursorPos(INT x, INT y, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook)
struct _CURICON_OBJECT * spicn
__kernel_entry W32KAPI HBRUSH APIENTRY NtGdiSelectBrush(_In_ HDC hdc, _In_ HBRUSH hbrush)
FORCEINLINE PMENU UserGetMenuObject(HMENU hMenu)
#define HAS_CLIENTFRAME(Style, ExStyle)
static LRESULT DefWndNCHitTest(HWND hWnd, POINT Point)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiLineTo(_In_ HDC hdc, _In_ INT x, _In_ INT y)
__kernel_entry W32KAPI HPEN APIENTRY NtGdiSelectPen(_In_ HDC hdc, _In_ HPEN hpen)
#define ON_RIGHT_BORDER(hit)
#define WNDS_HASVERTICALSCROOLLBAR
BOOL WINAPI DrawEdge(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
LRESULT NC_DoNCPaint(PWND pWnd, HDC hDC, INT Flags)
#define GreCreateRectRgnIndirect(prc)
struct _CURICON_OBJECT * spicnSm
BOOL UserDrawSysMenuButton(PWND pWnd, HDC hDC, LPRECT Rect, BOOL Down)
VOID FASTCALL UserDrawMovingFrame(HDC hdc, RECTL *rect, BOOL thickframe)
#define HAS_THINFRAME(Style, ExStyle)
#define HAS_THICKFRAME(Style, ExStyle)
#define WS_EX_DLGMODALFRAME
#define COLOR_ACTIVECAPTION
_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
#define DFCS_CAPTIONRESTORE
VOID UserGetWindowBorders(DWORD Style, DWORD ExStyle, SIZE *Size, BOOL WithClient)
PCURICON_OBJECT FASTCALL NC_IconForWindow(PWND pWnd)
BOOL APIENTRY UserClipCursor(RECTL *prcl)
LONG NTAPI UserGetSystemMetrics(ULONG Index)
UINT FASTCALL co_WinPosGetMinMaxInfo(PWND Window, POINT *MaxSize, POINT *MaxPos, POINT *MinTrack, POINT *MaxTrack)
#define UserHMGetHandle(obj)
HWND FASTCALL MsqSetStateWindow(PTHREADINFO pti, ULONG Type, HWND hWnd)
HWND FASTCALL co_UserSetCapture(HWND hWnd)
#define ON_BOTTOM_BORDER(hit)
_Must_inspect_result_ _In_ ULONG Flags
LONG FASTCALL DefWndStartSizeMove(PWND Wnd, WPARAM wParam, POINT *capturePoint)
#define UserHasDlgFrameStyle(Style, ExStyle)
#define UlongToHandle(ul)
#define DFCS_SCROLLSIZEGRIP
#define DFCS_CAPTIONCLOSE
VOID NC_DrawFrame(HDC hDC, RECT *CurrentRect, BOOL Active, DWORD Style, DWORD ExStyle)
HANDLE FASTCALL UserGetProp(_In_ PWND Window, _In_ ATOM Atom, _In_ BOOLEAN SystemProp)
#define COLOR_ACTIVEBORDER
int WINAPI GetSystemMetrics(_In_ int)
DWORD FASTCALL IntGetSysColor(INT nIndex)
VOID FASTCALL co_IntUpdateWindows(PWND Wnd, ULONG Flags, BOOL Recurse)
BOOL FASTCALL IntIsWindow(HWND hWnd)
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)
PWND FASTCALL UserGetDesktopWindow(VOID)
LRESULT NC_HandleNCCalcSize(PWND Wnd, WPARAM wparam, RECTL *Rect, BOOL Suspended)
void FASTCALL NC_GetInsideRect(PWND Wnd, RECT *rect)
BOOL FASTCALL IntIsWindowVisible(PWND Wnd)
LRESULT FASTCALL co_IntSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
#define UserHasThinFrameStyle(Style, ExStyle)
COLORREF FASTCALL IntSetDCPenColor(HDC, COLORREF)
#define COLOR_INACTIVECAPTIONTEXT
BOOL FASTCALL GreMoveTo(HDC hdc, INT x, INT y, LPPOINT pptOut)
HWND APIENTRY IntGetCapture(VOID)
GLint GLint GLsizei GLsizei height
__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)
VOID FASTCALL UpdateThreadWindows(PWND pWnd, PTHREADINFO pti, HRGN hRgn)
FORCEINLINE VOID RECTL_vOffsetRect(_Inout_ RECTL *prcl, _In_ INT cx, _In_ INT cy)
LRESULT NC_HandleNCLButtonDblClk(PWND pWnd, WPARAM wParam, LPARAM lParam)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
FORCEINLINE VOID RECTL_vSetRect(_Out_ RECTL *prcl, _In_ LONG left, _In_ LONG top, _In_ LONG right, _In_ LONG bottom)
VOID UserDrawCaptionBar(PWND pWnd, HDC hDC, INT Flags)
HWND WINAPI GetParent(_In_ HWND)
#define HAS_MENU(hwnd, style)
BOOL APIENTRY co_IntGetPeekMessage(PMSG pMsg, HWND hWnd, UINT MsgFilterMin, UINT MsgFilterMax, UINT RemoveMsg, BOOL bGMSG)
BOOL FASTCALL co_UserRedrawWindow(PWND Window, const RECTL *UpdateRect, PREGION UpdateRgn, ULONG Flags)
VOID FASTCALL DefWndDoSizeMove(PWND pwnd, WORD wParam)
FORCEINLINE BOOL IntEqualRect(RECTL *lprc1, RECTL *lprc2)
VOID FASTCALL UserDrawWindowFrame(HDC hdc, RECTL *rect, ULONG width, ULONG height)
PWND FASTCALL IntGetParent(PWND Wnd)
struct tagSCROLLBARINFO SCROLLBARINFO
INT FASTCALL IntMapWindowPoints(PWND FromWnd, PWND ToWnd, LPPOINT lpPoints, UINT cPoints)
#define ON_TOP_BORDER(hit)
LRESULT NC_HandleNCRButtonDown(PWND pwnd, WPARAM wParam, LPARAM lParam)
static INT NC_DoNCActive(PWND Wnd)
INT FASTCALL UserReleaseDC(PWND Window, HDC hDc, BOOL EndPaint)
struct _CURICON_OBJECT * PCURICON_OBJECT
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
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
#define HASSIZEGRIP(Style, ExStyle, ParentStyle, WindowRect, ParentClientRect)
FORCEINLINE BOOL RECTL_bIsEmptyRect(_In_ const RECTL *prcl)
#define HAS_DLGFRAME(Style, ExStyle)
#define UserHasThickFrameStyle(Style, ExStyle)
#define WNDS_FORCEMENUDRAW
_In_ ULONG _In_ BOOLEAN Active
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL FASTCALL IntIsChildWindow(PWND Parent, PWND BaseWindow)
struct _WND::@4898 InternalPos
BOOL FASTCALL UserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
BOOL FASTCALL co_IntSetForegroundWindowMouse(PWND Window)
LRESULT NC_HandleNCLButtonDown(PWND pWnd, WPARAM wParam, LPARAM lParam)
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)
DWORD FASTCALL GetNCHitEx(PWND pWnd, POINT pt)
PCURICON_OBJECT FASTCALL UserSetCursor(PCURICON_OBJECT NewCursor, BOOL ForceChange)
LRESULT NC_HandleNCActivate(PWND Wnd, WPARAM wParam, LPARAM lParam)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
DBG_DEFAULT_CHANNEL(UserDefwnd)
PUSER_HANDLE_TABLE gHandleTable
HMENU WINAPI GetMenu(_In_ HWND)
VOID NC_DoButton(PWND pWnd, WPARAM wParam, LPARAM lParam)
#define ON_LEFT_BORDER(hit)
static UINT WPARAM wparam
BOOL UserDrawCaption(PWND pWnd, HDC hDc, RECTL *lpRc, HFONT hFont, HICON hIcon, const PUNICODE_STRING Str, UINT uFlags)
VOID FASTCALL UserReferenceObject(PVOID obj)
BOOL FASTCALL IntGetWindowRect(PWND Wnd, RECTL *Rect)