* Sync to trunk HEAD (r53473).
[reactos.git] / subsystems / win32 / win32k / include / winpos.h
1 #pragma once
2
3 typedef struct _CVR // Tag Ussw
4 {
5 WINDOWPOS pos;
6 LONG xClientNew;
7 LONG yClientNew;
8 LONG cxClientNew;
9 LONG cyClientNew;
10 RECT rcBlt;
11 LONG dxBlt;
12 LONG dyBlt;
13 UINT fsRE;
14 HRGN hrgnVisOld;
15 PTHREADINFO pti;
16 HRGN hrgnClip;
17 HRGN hrgnInterMonitor;
18 } CVR, *PCVR;
19
20 typedef struct _SMWP
21 {
22 HEAD head;
23 UINT bShellNotify:1;
24 UINT bHandle:1;
25 INT ccvr;
26 INT ccvrAlloc;
27 PCVR acvr;
28 } SMWP, *PSMWP;
29
30 FORCEINLINE BOOL IntPtInWindow(PWND pwnd, INT x, INT y)
31 {
32 if(!RECTL_bPointInRect(&pwnd->rcWindow, x, y))
33 {
34 return FALSE;
35 }
36
37 if(!pwnd->hrgnClip || pwnd->style & WS_MINIMIZE)
38 {
39 return TRUE;
40 }
41
42 return NtGdiPtInRegion(pwnd->hrgnClip,
43 x - pwnd->rcWindow.left,
44 y - pwnd->rcWindow.top);
45 }
46
47 UINT FASTCALL co_WinPosArrangeIconicWindows(PWND parent);
48 BOOL FASTCALL IntGetClientOrigin(PWND Window, LPPOINT Point);
49 LRESULT FASTCALL co_WinPosGetNonClientSize(PWND Window, RECTL* WindowRect, RECTL* ClientRect);
50 UINT FASTCALL co_WinPosGetMinMaxInfo(PWND Window, POINT* MaxSize, POINT* MaxPos, POINT* MinTrack, POINT* MaxTrack);
51 UINT FASTCALL co_WinPosMinMaximize(PWND WindowObject, UINT ShowFlag, RECTL* NewPos);
52 BOOLEAN FASTCALL co_WinPosSetWindowPos(PWND Wnd, HWND WndInsertAfter, INT x, INT y, INT cx, INT cy, UINT flags);
53 BOOLEAN FASTCALL co_WinPosShowWindow(PWND Window, INT Cmd);
54 void FASTCALL co_WinPosSendSizeMove(PWND Window);
55 PWND FASTCALL co_WinPosWindowFromPoint(PWND ScopeWin, POINT *WinPoint, USHORT* HitTest);
56 VOID FASTCALL co_WinPosActivateOtherWindow(PWND Window);
57 VOID FASTCALL WinPosInitInternalPos(PWND WindowObject, POINT *pt, RECTL *RestoreRect);