1796{
1798 RECTL NewWindowRect;
1799 RECTL NewClientRect;
1800 RECTL valid_rects[2];
1806 RECTL OldWindowRect, OldClientRect;
1807 int RgnType;
1811 BOOL bPointerInWindow, PosChanged =
FALSE;
1813
1815
1816 TRACE(
"pwnd %p, after %p, %d,%d (%dx%d), flags 0x%x\n",
1818#if DBG
1819 dump_winpos_flags(
flags);
1820#endif
1821
1822
1823
1825
1833
1835 {
1838 if ( ppos )
1839 {
1840 WinPos.
flags &= ~SWP_ASYNCWINDOWPOS;
1841 *ppos = WinPos;
1842
1844
1845 if ( !lRes )
1846 {
1849 }
1851 }
1853 }
1854
1856
1857
1859 {
1860 TRACE(
"WinPosSetWindowPos: Invalid handle 0x%p!\n",WinPos.
hwnd);
1863 }
1864
1865
1867 {
1868
1870 }
1871
1875 {
1877 }
1878
1880 {
1881
1886 {
1889
1890 if ( VisBefore !=
NULL &&
1892 {
1895 }
1896 else if(VisBefore)
1897 {
1899 }
1900
1901
1903 {
1906
1907 if ( VisBeforeJustClient !=
NULL &&
1909 {
1911 VisBeforeJustClient =
NULL;
1912 }
1913 else if(VisBeforeJustClient)
1914 {
1916 }
1917 }
1918 }
1919 }
1920
1922 if (
Window->hrgnNewFrame)
1923 {
1926 }
1927
1929
1930
1931
1932
1933
1934
1936 {
1938 }
1939
1940 OldWindowRect =
Window->rcWindow;
1941 OldClientRect =
Window->rcClient;
1942
1943 if (NewClientRect.
left != OldClientRect.
left ||
1944 NewClientRect.
top != OldClientRect.
top)
1945 {
1946
1948 NewClientRect.
left - OldClientRect.
left,
1949 NewClientRect.
top - OldClientRect.
top);
1951 }
1952
1953 Window->rcWindow = NewWindowRect;
1954 Window->rcClient = NewClientRect;
1955
1956
1958 {
1959
1962 0,
1964
1967
1968 Window->style &= ~WS_VISIBLE;
1969 Window->head.pti->cVisWindows--;
1971 }
1973 {
1975 {
1977 {
1981 }
1982 }
1986 {
1988 {
1992 }
1993 }
1994
1996 Window->head.pti->cVisWindows++;
1998 }
1999 else
2000 {
2002 }
2003
2005 {
2007 NewWindowRect.
left - OldWindowRect.
left,
2008 NewWindowRect.
top - OldWindowRect.
top);
2009 }
2010
2012
2013
2016 {
2019 }
2020
2022 {
2023
2026
2027 if ( VisAfter !=
NULL &&
2029 {
2032 }
2033 else if(VisAfter)
2034 {
2036 }
2037
2038
2039
2040
2041
2042
2043
2044
2045 if ( ( VisBefore !=
NULL &&
2050 {
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2064 else if (VisBeforeJustClient !=
NULL)
2065 {
2067 }
2068
2069 if (VisBeforeJustClient !=
NULL)
2070 {
2072 }
2073
2074
2076 {
2078 if (RgnUpdate)
2079 {
2084 }
2085 }
2086
2087
2088
2089
2090
2091
2093 {
2094
2097 }
2098 else if ( OldWindowRect.
left != NewWindowRect.
left ||
2099 OldWindowRect.
top != NewWindowRect.
top ||
2101 {
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2118 DcRgn,
2124 Dc,
2128 0,
2129 0);
2130
2134 }
2135 }
2136 else
2137 {
2139 }
2140
2141
2142 if (VisAfter !=
NULL)
2143 {
2145 if (DirtyRgn)
2146 {
2148 {
2150 }
2151 else
2152 {
2154 }
2155
2157 {
2158
2159
2160
2161
2162
2163
2164
2165
2166
2168
2170
2172 {
2175 }
2177 }
2179 {
2180 if ( !PosChanged &&
2183 {
2186
2188 {
2189 TRACE(
"SWP_FRAMECHANGED win child %p Parent %p\n",pwnd,
Parent);
2191 }
2192
2194 {
2195
2196
2197
2198
2199
2201 {
2203 }
2204 else
2205 {
2208 TRACE(
"SWP_FRAMECHANGED win %p hRgn %p\n",pwnd, DcRgn);
2213 }
2214 }
2215 }
2216 }
2218 }
2219 }
2220
2222 {
2224 }
2225
2226
2227 if ( VisBefore !=
NULL )
2228 {
2230 if (ExposedRgn)
2231 {
2234 OldWindowRect.
left - NewWindowRect.
left,
2235 OldWindowRect.
top - NewWindowRect.
top);
2236
2237 if ( VisAfter !=
NULL )
2239
2241 {
2243 }
2245 }
2247 }
2248
2249 if (VisAfter !=
NULL)
2250 {
2252 }
2253 }
2254
2256 {
2258 {
2260 }
2261 else
2262 {
2263
2266 {
2267
2269 {
2271 }
2272 }
2273 }
2274 }
2275
2276 if ( !PosChanged &&
2279 VisAfter )
2280 {
2283 {
2286 }
2287 }
2288
2289
2290 if ( VisBefore ==
NULL &&
2291 VisBeforeJustClient ==
NULL &&
2294 {
2295 TRACE(
"No drawing, set no Z order and no redraw!\n");
2297 }
2298
2300 {
2301
2305 {
2309 }
2310
2311
2314 {
2316 }
2317 }
2318
2319
2320
2322
2325 {
2326
2327
2328
2329 WinPos.
x = NewWindowRect.
left;
2330 WinPos.
y = NewWindowRect.
top;
2331 WinPos.
cx = NewWindowRect.
right - NewWindowRect.
left;
2332 WinPos.
cy = NewWindowRect.
bottom - NewWindowRect.
top;
2333 TRACE(
"WM_WINDOWPOSCHANGED hwnd %p Flags %04x\n",WinPos.
hwnd,WinPos.
flags);
2335 }
2336
2339 {
2341 if (pWnd)
2343 }
2344
2345
2347 {
2350 }
2351
2353 {
2354
2361 }
2362
2364}
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