1795{
1797 RECTL NewWindowRect;
1798 RECTL NewClientRect;
1799 RECTL valid_rects[2];
1805 RECTL OldWindowRect, OldClientRect;
1806 int RgnType;
1810 BOOL bPointerInWindow, PosChanged =
FALSE;
1812
1814
1815 TRACE(
"pwnd %p, after %p, %d,%d (%dx%d), flags 0x%x\n",
1817#if DBG
1818 dump_winpos_flags(
flags);
1819#endif
1820
1821
1822
1824
1832
1834 {
1837 if ( ppos )
1838 {
1839 WinPos.
flags &= ~SWP_ASYNCWINDOWPOS;
1840 *ppos = WinPos;
1841
1843
1844 if ( !lRes )
1845 {
1848 }
1850 }
1852 }
1853
1855
1856
1858 {
1859 TRACE(
"WinPosSetWindowPos: Invalid handle 0x%p!\n",WinPos.
hwnd);
1862 }
1863
1864
1866 {
1867
1869 }
1870
1874 {
1876 }
1877
1879 {
1880
1885 {
1888
1889 if ( VisBefore !=
NULL &&
1891 {
1894 }
1895 else if(VisBefore)
1896 {
1898 }
1899
1900
1902 {
1905
1906 if ( VisBeforeJustClient !=
NULL &&
1908 {
1910 VisBeforeJustClient =
NULL;
1911 }
1912 else if(VisBeforeJustClient)
1913 {
1915 }
1916 }
1917 }
1918 }
1919
1921 if (
Window->hrgnNewFrame)
1922 {
1925 }
1926
1928
1929
1930
1931
1932
1933
1935 {
1937 }
1938
1939 OldWindowRect =
Window->rcWindow;
1940 OldClientRect =
Window->rcClient;
1941
1942 if (NewClientRect.
left != OldClientRect.
left ||
1943 NewClientRect.
top != OldClientRect.
top)
1944 {
1945
1947 NewClientRect.
left - OldClientRect.
left,
1948 NewClientRect.
top - OldClientRect.
top);
1950 }
1951
1952 Window->rcWindow = NewWindowRect;
1953 Window->rcClient = NewClientRect;
1954
1955
1957 {
1958
1961 0,
1963
1966
1967 Window->style &= ~WS_VISIBLE;
1968 Window->head.pti->cVisWindows--;
1970 }
1972 {
1974 {
1976 {
1980 }
1981 }
1985 {
1987 {
1991 }
1992 }
1993
1995 Window->head.pti->cVisWindows++;
1997 }
1998 else
1999 {
2001 }
2002
2004 {
2006 NewWindowRect.
left - OldWindowRect.
left,
2007 NewWindowRect.
top - OldWindowRect.
top);
2008 }
2009
2011
2012
2015 {
2018 }
2019
2021 {
2022
2025
2026 if ( VisAfter !=
NULL &&
2028 {
2031 }
2032 else if(VisAfter)
2033 {
2035 }
2036
2037
2038
2039
2040
2041
2042
2043
2044 if ( ( VisBefore !=
NULL &&
2049 {
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2063 else if (VisBeforeJustClient !=
NULL)
2064 {
2066 }
2067
2068 if (VisBeforeJustClient !=
NULL)
2069 {
2071 }
2072
2073
2075 {
2077 if (RgnUpdate)
2078 {
2083 }
2084 }
2085
2086
2087
2088
2089
2090
2092 {
2093
2096 }
2097 else if ( OldWindowRect.
left != NewWindowRect.
left ||
2098 OldWindowRect.
top != NewWindowRect.
top ||
2100 {
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2117 DcRgn,
2123 Dc,
2127 0,
2128 0);
2129
2133 }
2134 }
2135 else
2136 {
2138 }
2139
2140
2141 if (VisAfter !=
NULL)
2142 {
2144 if (DirtyRgn)
2145 {
2147 {
2149 }
2150 else
2151 {
2153 }
2154
2156 {
2157
2158
2159
2160
2161
2162
2163
2164
2165
2167
2169
2171 {
2174 }
2176 }
2178 {
2179 if ( !PosChanged &&
2182 {
2185
2187 {
2188 TRACE(
"SWP_FRAMECHANGED win child %p Parent %p\n",pwnd,
Parent);
2190 }
2191
2193 {
2194
2195
2196
2197
2198
2200 {
2202 }
2203 else
2204 {
2207 TRACE(
"SWP_FRAMECHANGED win %p hRgn %p\n",pwnd, DcRgn);
2212 }
2213 }
2214 }
2215 }
2217 }
2218 }
2219
2221 {
2223 }
2224
2225
2226 if (VisBefore !=
NULL)
2227 {
2229 if (ExposedRgn)
2230 {
2233 OldWindowRect.
left - NewWindowRect.
left,
2234 OldWindowRect.
top - NewWindowRect.
top);
2235
2236 if (VisAfter !=
NULL)
2238
2240 {
2242 }
2244 }
2246 }
2247
2248 if (VisAfter !=
NULL)
2249 {
2251 }
2252 }
2253
2255 {
2257 {
2259 }
2260 else
2261 {
2262
2265 {
2266
2268 {
2270 }
2271 }
2272 }
2273 }
2274
2275 if ( !PosChanged &&
2278 VisAfter )
2279 {
2282 {
2285 }
2286 }
2287
2288
2289 if ( VisBefore ==
NULL &&
2290 VisBeforeJustClient ==
NULL &&
2293 {
2294 TRACE(
"No drawing, set no Z order and no redraw!\n");
2296 }
2297
2299 {
2300
2304 {
2308 }
2309
2310
2313 {
2315 }
2316 }
2317
2318
2319
2321
2324 {
2325
2326
2327
2328 WinPos.
x = NewWindowRect.
left;
2329 WinPos.
y = NewWindowRect.
top;
2330 WinPos.
cx = NewWindowRect.
right - NewWindowRect.
left;
2331 WinPos.
cy = NewWindowRect.
bottom - NewWindowRect.
top;
2332 TRACE(
"WM_WINDOWPOSCHANGED hwnd %p Flags %04x\n",WinPos.
hwnd,WinPos.
flags);
2334 }
2335
2338 {
2340 if (pWnd)
2342 }
2343
2344
2346 {
2349 }
2350
2352 {
2353
2360 }
2361
2363}
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)
static VOID FASTCALL IntImeWindowPosChanged(VOID)
#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