1757{
1759 RECTL NewWindowRect;
1760 RECTL NewClientRect;
1761 RECTL valid_rects[2];
1767 RECTL OldWindowRect, OldClientRect;
1768 int RgnType;
1772 BOOL bPointerInWindow, PosChanged =
FALSE;
1774
1776
1777 TRACE(
"pwnd %p, after %p, %d,%d (%dx%d), flags 0x%x\n",
1779#if DBG
1780 dump_winpos_flags(
flags);
1781#endif
1782
1783
1784
1786
1794
1796 {
1799 if ( ppos )
1800 {
1801 WinPos.
flags &= ~SWP_ASYNCWINDOWPOS;
1802 *ppos = WinPos;
1803
1805
1806 if ( !lRes )
1807 {
1810 }
1812 }
1814 }
1815
1817
1818
1820 {
1821 TRACE(
"WinPosSetWindowPos: Invalid handle 0x%p!\n",WinPos.
hwnd);
1824 }
1825
1826
1828 {
1829
1831 }
1832
1836 {
1838 }
1839
1841 {
1842
1847 {
1850
1851 if ( VisBefore !=
NULL &&
1853 {
1856 }
1857 else if(VisBefore)
1858 {
1860 }
1861
1862
1864 {
1867
1868 if ( VisBeforeJustClient !=
NULL &&
1870 {
1872 VisBeforeJustClient =
NULL;
1873 }
1874 else if(VisBeforeJustClient)
1875 {
1877 }
1878 }
1879 }
1880 }
1881
1883 if (
Window->hrgnNewFrame)
1884 {
1887 }
1888
1890
1891
1892
1893
1894
1895
1897 {
1899 }
1900
1901 OldWindowRect =
Window->rcWindow;
1902 OldClientRect =
Window->rcClient;
1903
1904 if (NewClientRect.
left != OldClientRect.
left ||
1905 NewClientRect.
top != OldClientRect.
top)
1906 {
1907
1909 NewClientRect.
left - OldClientRect.
left,
1910 NewClientRect.
top - OldClientRect.
top);
1912 }
1913
1914 Window->rcWindow = NewWindowRect;
1915 Window->rcClient = NewClientRect;
1916
1917
1919 {
1920
1923 0,
1925
1928
1929 Window->style &= ~WS_VISIBLE;
1930 Window->head.pti->cVisWindows--;
1932 }
1934 {
1936 {
1938 {
1942 }
1943 }
1947 {
1949 {
1953 }
1954 }
1955
1957 Window->head.pti->cVisWindows++;
1959 }
1960 else
1961 {
1963 }
1964
1966 {
1968 NewWindowRect.
left - OldWindowRect.
left,
1969 NewWindowRect.
top - OldWindowRect.
top);
1970 }
1971
1973
1974
1977 {
1980 }
1981
1983 {
1984
1987
1988 if ( VisAfter !=
NULL &&
1990 {
1993 }
1994 else if(VisAfter)
1995 {
1997 }
1998
1999
2000
2001
2002
2003
2004
2005
2006 if ( ( VisBefore !=
NULL &&
2011 {
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2025 else if (VisBeforeJustClient !=
NULL)
2026 {
2028 }
2029
2030 if (VisBeforeJustClient !=
NULL)
2031 {
2033 }
2034
2035
2037 {
2039 if (RgnUpdate)
2040 {
2045 }
2046 }
2047
2048
2049
2050
2051
2052
2054 {
2055
2058 }
2059 else if ( OldWindowRect.
left != NewWindowRect.
left ||
2060 OldWindowRect.
top != NewWindowRect.
top ||
2062 {
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2079 DcRgn,
2085 Dc,
2089 0,
2090 0);
2091
2095 }
2096 }
2097 else
2098 {
2100 }
2101
2102
2105 {
2107 if (DirtyRgn)
2108 {
2110 {
2112 }
2113 else
2114 {
2116 }
2117
2119 {
2120
2121
2122
2123
2124
2125
2126
2127
2128
2130
2132
2134 {
2137 }
2139 }
2141 {
2142 if ( !PosChanged &&
2145 {
2148
2150 {
2151 TRACE(
"SWP_FRAMECHANGED win child %p Parent %p\n",pwnd,
Parent);
2153 }
2154
2156 {
2157
2158
2159
2160
2161
2163 {
2165 }
2166 else
2167 {
2170 TRACE(
"SWP_FRAMECHANGED win %p hRgn %p\n",pwnd, DcRgn);
2175 }
2176 }
2177 }
2178 }
2180 }
2181 }
2182
2184 {
2186 }
2187
2188
2189 if ( VisBefore !=
NULL )
2190 {
2192 if (ExposedRgn)
2193 {
2196 OldWindowRect.
left - NewWindowRect.
left,
2197 OldWindowRect.
top - NewWindowRect.
top);
2198
2199 if ( VisAfter !=
NULL )
2201
2203 {
2205 }
2207 }
2209 }
2210
2211 if (VisAfter !=
NULL)
2212 {
2214 }
2215 }
2216
2218 {
2220 {
2222 }
2223 else
2224 {
2225
2228 {
2229
2231 {
2233 }
2234 }
2235 }
2236 }
2237
2238 if ( !PosChanged &&
2241 VisAfter )
2242 {
2245 {
2248 }
2249 }
2250
2251
2252 if ( VisBefore ==
NULL &&
2253 VisBeforeJustClient ==
NULL &&
2256 {
2257 TRACE(
"No drawing, set no Z order and no redraw!\n");
2259 }
2260
2262 {
2263
2267 {
2271 }
2272
2273
2276 {
2278 }
2279 }
2280
2281
2282
2284
2287 {
2288
2289
2290
2291 WinPos.
x = NewWindowRect.
left;
2292 WinPos.
y = NewWindowRect.
top;
2293 WinPos.
cx = NewWindowRect.
right - NewWindowRect.
left;
2294 WinPos.
cy = NewWindowRect.
bottom - NewWindowRect.
top;
2295 TRACE(
"WM_WINDOWPOSCHANGED hwnd %p Flags %04x\n",WinPos.
hwnd,WinPos.
flags);
2297 }
2298
2301 {
2303 if (pWnd)
2305 }
2306
2308 {
2309
2316 }
2317
2319}
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
VOID FASTCALL DceResetActiveDCEs(PWND Window)
#define ValidateHwndNoErr(hwnd)
#define ExAllocatePoolWithTag(hernya, size, tag)
BOOL FASTCALL IntCheckFullscreen(PWND Window)
VOID FASTCALL UpdateShellHook(PWND Window)
#define WNDS2_WIN31COMPAT
#define WNDS_BEINGACTIVATED
#define ExFreePoolWithTag(_P, _T)
VOID FASTCALL co_MsqInsertMouseMessage(MSG *Msg, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook)
__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)
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
static BOOL FASTCALL co_WinPosDoWinPosChanging(PWND Window, PWINDOWPOS WinPos, PRECTL WindowRect, PRECTL ClientRect)
static BOOL FASTCALL WinPosFixupFlags(WINDOWPOS *WinPos, PWND Wnd)
VOID ForceNCPaintErase(PWND Wnd, HRGN hRgn, PREGION pRgn)
#define SWP_AGG_STATUSFLAGS
static VOID FASTCALL WinPosInternalMoveWindow(PWND Window, INT MoveX, INT MoveY)
static BOOL IntValidateParent(PWND Child, PREGION ValidateRgn)
#define SWP_AGG_NOCLIENTCHANGE
static HWND FASTCALL WinPosDoOwnedPopups(PWND Window, HWND hWndInsertAfter)
#define SWP_AGG_NOGEOMETRYCHANGE
#define SWP_AGG_NOPOSCHANGE
VOID SelectWindowRgn(PWND Window, HRGN hRgnClip)
static LONG FASTCALL co_WinPosDoNCCALCSize(PWND Window, PWINDOWPOS WinPos, RECTL *WindowRect, RECTL *ClientRect, RECTL *validRects)
#define WS_EX_TRANSPARENT
_Out_opt_ int _Out_opt_ int * cy
TW_UINT32 TW_UINT16 TW_UINT16 MSG
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)
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)
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
INT FASTCALL REGION_Complexity(PREGION prgn)
VOID FASTCALL REGION_Delete(PREGION pRgn)
PREGION FASTCALL REGION_LockRgn(_In_ HRGN hrgn)
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)
HWND FASTCALL IntGetDesktopWindow(VOID)
VOID co_IntShellHookNotify(WPARAM Message, WPARAM wParam, LPARAM lParam)
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
BOOL FASTCALL IntIsWindow(HWND hWnd)
VOID FASTCALL IntLinkHwnd(PWND Wnd, HWND hWndPrev)
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
#define CopyRgn(hrgnDst, hrgnSrc)
#define ERROR_INVALID_WINDOW_HANDLE
FORCEINLINE BOOL IntPtInWindow(PWND pwnd, INT x, INT y)
BOOL WINAPI CopyRect(_Out_ LPRECT, _In_ LPCRECT)
#define HSHELL_WINDOWDESTROYED
#define HSHELL_WINDOWCREATED
#define RDW_NOINTERNALPAINT
#define WM_WINDOWPOSCHANGED