45 if (
Flags & ~(UISF_HIDEFOCUS | UISF_HIDEACCEL | UISF_ACTIVE))
58 if (
Flags & UISF_HIDEFOCUS)
60 if (
Flags & UISF_HIDEACCEL)
65 if (
Flags & UISF_HIDEFOCUS)
67 if (
Flags & UISF_HIDEACCEL)
147 ULONG styleOld, styleNew;
148 styleOld = pwnd->
style;
149 styleNew = (pwnd->
style | set_bits) & ~clear_bits;
150 if (styleNew == styleOld)
return styleNew;
151 pwnd->
style = styleNew;
196 if (!Temp)
return TRUE;
250 TRACE(
"IntEnableWindow SF NULL\n");
292 ERR(
"Failed to allocate memory for children array\n");
336 ERR(
"Failed to allocate memory for children array\n");
375 if (
Owner == Wnd)
break;
435 if (FoundWnd !=
NULL)
530 for (
i = 0; pWndArray[
i];
i++)
538 TRACE(
"destroyed itself while in WM_DESTROY!\n");
592 TRACE(
"Tried to call co_UserFreeWindow() twice\n");
596 Window->style &= ~WS_VISIBLE;
597 Window->head.pti->cVisWindows--;
613 for (ChildHandle = Children; *ChildHandle; ++ChildHandle)
640 if (BelongsToThreadData)
703 Window->state &= ~WNDS_INTERNALPAINT;
731 if (
Window->PropListItems)
734 TRACE(
"Window->PropListItems %lu\n",
Window->PropListItems);
758 Window->head.pti->pDeskInfo,
768 Window->head.pti->cWindows--;
839 return (gcpd ? gcpd : Ret);
886 pWnd->
state &= ~WNDS_ANSIWINDOWPROC;
896 pWnd->
state &= ~WNDS_ANSIWINDOWPROC;
899 pWnd->
state &= ~WNDS_SERVERSIDEWINDOWPROC;
917 pWnd->
lpfnWndProc = (chWndProc ? chWndProc : NewWndProc);
952 if (Wnd == WndInsertAfter)
954 ERR(
"Trying to link window 0x%p to itself\n", Wnd);
955 ASSERT(WndInsertAfter != Wnd);
992 Wnd->
ExStyle &= ~WS_EX_TOPMOST;
1001 PWND WndInsertAfter;
1004 while (WndInsertAfter && WndInsertAfter->
spwndNext)
1006 WndInsertAfter = WndInsertAfter->
spwndNext;
1010 Wnd->
ExStyle &= ~WS_EX_TOPMOST;
1021 PWND WndInsertBefore;
1037 WndInsertBefore = WndInsertBefore->
spwndNext;
1046 PWND WndInsertAfter;
1050 if (WndInsertAfter ==
NULL)
1057 if (Wnd == WndInsertAfter)
1059 ERR(
"Trying to link window 0x%p to itself\n", Wnd);
1060 ASSERT(WndInsertAfter != Wnd);
1071 Wnd->
ExStyle &= ~WS_EX_TOPMOST;
1090 if (Wnd->
head.pti != WndOldOwner->
head.pti)
1093 Wnd->
head.pti == WndNewOwner->
head.pti ||
1094 WndOldOwner->
head.pti != WndNewOwner->
head.pti )
1103 if (Wnd->
head.pti != WndNewOwner->
head.pti)
1106 WndOldOwner->
head.pti != WndNewOwner->
head.pti )
1120 PWND Wnd, WndOldOwner, WndNewOwner;
1132 if (!WndNewOwner && hWndNewOwner)
1161 PWND WndOldParent, pWndExam;
1180 TRACE(
"IntSetParent try to set a child as a parent.\n");
1185 pWndExam = WndNewParent;
1189 if (Wnd == pWndExam)
1191 TRACE(
"IntSetParent Failed Test for set parent to parent!\n");
1207 ERR(
"IntSetParent Window must belong to current process!\n");
1213 if ( WndOldParent &&
1238 ERR(
"SetParent Top Most from Pop up\n");
1260 if (WndOldParent && (Wnd->
head.pti != WndOldParent->
head.pti))
1268 if (Wnd->
head.pti != WndNewParent->
head.pti)
1288 pt.x,
pt.y, 0, 0, swFlags);
1292 return WndOldParent;
1311 ERR(
"UserSetParent Access Denied!\n");
1320 ERR(
"UserSetParent Bad New Parent!\n");
1334 ERR(
"UserSetParent Bad Child!\n");
1352 return hWndOldParent;
1439#define INITIAL_COUNT 32
1479 if (*ppwl != pwlTarget)
1528 ULONG* pcHwndNeeded)
1533 if (pcHwndNeeded ==
NULL)
1580 if (dwCount++ < cHwnd && phwndList)
1598 if (
Window->spwndChild && bChildren)
1634 ERR(
"Thread Id is not valid!\n");
1641 TRACE(
"Tried to enumerate windows of a non gui thread\n");
1658 if (dwCount < cHwnd && phwndList)
1673 ERR(
"Failure to build window list!\n");
1686 *pcHwndNeeded = dwCount;
1716#define IS_DEFAULT(x) ((x) == CW_USEDEFAULT || (x) == (SHORT)0x8000)
1731 if (pMonitor ==
NULL)
1785 TRACE(
"Strange use of CW_USEDEFAULT in nHeight\n");
1821 BOOL bUnicodeWindow;
1867 pdeskCreated ? pdeskCreated : pti->
rpdesk,
1878 TRACE(
"Created window object with handle %p\n",
hWnd);
1883 TRACE(
"CreateWindow setting desktop.\n");
1929 pWnd->
head.pti->cWindows++;
2014 if ( !bUnicodeWindow &&
2030 pWnd->
state &= ~WNDS_ANSIWINDOWPROC;
2046 ERR(
"Warning: Unable to create CallProc for edit control. Control may not operate correctly! hwnd %p\n",
hWnd);
2092 pWnd->
ExStyle &= ~WS_EX_WINDOWEDGE;
2120 if (hMenu)
IntSetMenu(pWnd, hMenu, &MenuChanged);
2127 if ( ParentWindow &&
2128 ParentWindow != ParentWindow->
head.
rpdesk->spwndMessage &&
2129 ParentWindow != ParentWindow->
head.
rpdesk->pDeskInfo->spwnd )
2168 ERR(
"IntCreateWindow Allocation Error.\n");
2192 POINT MaxSize, MaxPos, MinTrack, MaxTrack;
2206 ERR(
"Thread is not attached to a desktop! Cannot create window (%wZ)\n", ClassName);
2209 WinSta = pti->
rpdesk->rpwinstaParent;
2220 ERR(
"Failed to find class %wZ\n", ClassName);
2241 ERR(
"Cannot create a child window (%wZ) without a parent\n", ClassName);
2261 ERR(
"Got invalid parent window handle for %wZ\n", ClassName);
2264 else if (hWndOwner && !OwnerWindow)
2266 ERR(
"Got invalid owner window handle for %wZ\n", ClassName);
2267 ParentWindow =
NULL;
2276 ERR(
"an owned window must be created as top-level\n");
2283 OwnerWindow = OwnerWindow->spwndParent;
2305 ERR(
"IntCreateWindow(%wZ) failed\n", ClassName);
2326 if (!pCsw || !pCbtCreate)
2328 ERR(
"UserHeapAlloc() failed!\n");
2334 ERR(
"IntMsgCreateStructW() failed!\n");
2338 pCbtCreate->
lpcs = pCsw;
2345 ERR(
"WH_CBT HCBT_CREATEWND hook failed! 0x%x\n",
Result);
2353 hwndInsertAfter = pCbtCreate->hwndInsertAfter;
2360 Cs->
x += ParentWindow->rcClient.left;
2361 Cs->
y += ParentWindow->rcClient.top;
2372 if (
Size.cx > MaxTrack.
x)
Size.cx = MaxTrack.
x;
2373 if (
Size.cy > MaxTrack.
y)
Size.cy = MaxTrack.
y;
2374 if (
Size.cx < MinTrack.
x)
Size.cx = MinTrack.
x;
2375 if (
Size.cy < MinTrack.
y)
Size.cy = MinTrack.
y;
2378 Window->rcWindow.left = Cs->
x;
2392 if (ParentWindow !=
NULL)
2397 Window->rcWindow.right = ParentWindow->rcClient.right - (
Window->rcWindow.left - ParentWindow->rcClient.left);
2406 ERR(
"Window 0x%p has been linked too early!\n",
Window);
2419 if (pti != ParentWindow->head.pti)
2431 ERR(
"co_UserCreateWindowEx(%wZ): NCCREATE message failed\n", ClassName);
2436 if (ParentWindow !=
NULL)
2475 MaxPos.
x =
Window->rcWindow.left;
2476 MaxPos.
y =
Window->rcWindow.top;
2484 MaxPos.
y -
Window->rcWindow.top);
2491 ERR(
"co_UserCreateWindowEx(%wZ): WM_CREATE message failed\n", ClassName);
2592 TRACE(
"co_UserCreateWindowEx(%wZ): Created window %p\n", ClassName,
hWnd);
2598 TRACE(
"co_UserCreateWindowEx(): Error Created window!\n");
2637 lstrTemp = *plstrUnsafe;
2646 if (lstrTemp.
Length != 0)
2671 plstrSafe->Buffer = pvBuffer;
2672 plstrSafe->Length = lstrTemp.
Length;
2673 plstrSafe->MaximumLength = lstrTemp.
Length;
2719 ERR(
"NtUserCreateWindowEx: Got an invalid menu handle!\n");
2729 ERR(
"NtUserCreateWindowEx: failed to capture plstrWindowName\n");
2734 plstrWindowName = &lstrWindowName;
2741 ustrClassName.
Length = 0;
2750 ERR(
"NtUserCreateWindowEx: failed to capture plstrClassName\n");
2767 ustrClsVersion.
Length = 0;
2776 ERR(
"NtUserCreateWindowEx: failed to capture plstrClsVersion\n");
2810 ERR(
"co_UserCreateWindowEx failed!\n");
2817 if (lstrWindowName.
Buffer)
2821 if (lstrClassName.
Buffer)
2825 if (lstrClsVersion.
Buffer)
2845 for (phWnd =
List; *phWnd; ++phWnd)
2862 ERR(
"IntWndBelongsToThread(0x%p) is FALSE, ignoring.\n", pWnd);
2885 TRACE(
"Tried to destroy a window twice\n");
2892 TRACE(
"co_UserDestroyWindow(Window = 0x%p, hWnd = 0x%p)\n",
Window,
hWnd);
2895 if (
Window->head.pti != ti)
2910 ERR(
"Destroy Window WH_CBT Call Hook return!\n");
2953 if ((pwndTemp =
Window->spwndOwner))
2974 if (
Window->head.pti->MessageQueue->spwndActive ==
Window)
2975 Window->head.pti->MessageQueue->spwndActive =
NULL;
2976 if (
Window->head.pti->MessageQueue->spwndFocus ==
Window)
2977 Window->head.pti->MessageQueue->spwndFocus =
NULL;
2978 if (
Window->head.pti->MessageQueue->spwndActivePrev ==
Window)
2979 Window->head.pti->MessageQueue->spwndActivePrev =
NULL;
2980 if (
Window->head.pti->MessageQueue->spwndCapture ==
Window)
2981 Window->head.pti->MessageQueue->spwndCapture =
NULL;
2991 ERR(
"Destroying the ShellWindow!\n");
3060 TRACE(
"Enter NtUserDestroyWindow\n");
3071 TRACE(
"Leave NtUserDestroyWindow, ret=%u\n",
ret);
3083 BOOL CheckWindowName;
3090 CheckWindowName = WindowName->
Buffer != 0;
3114 if (!ClassAtom ||
Child->pcls->atomNVClassName == ClassAtom)
3120 if(!CheckWindowName ||
3121 (
Child->strName.Length < 0xFFFF &&
3161 HWND hwndChildAfter,
3172 TRACE(
"Enter NtUserFindWindowEx\n");
3175 if (ucClassName !=
NULL || ucWindowName !=
NULL)
3179 if (ucClassName !=
NULL)
3182 if (ClassName.
Length != 0)
3194 if (!IntGetAtomFromStringOrAtom(&ClassName,
3202 if (ucWindowName !=
NULL)
3205 if (WindowName.Length != 0)
3220 if (ucClassName !=
NULL)
3241 DoMessageWnd =
TRUE;
3264 PWND TopLevelWindow;
3283 CheckWindowName = WindowName.Buffer != 0;
3301 WindowMatches = !CheckWindowName ||
3304 ClassMatches = (ClassAtom == (
RTL_ATOM)0) ||
3307 if (WindowMatches && ClassMatches)
3327 TRACE(
"FindWindowEx: Not Desktop Parent!\n");
3331 if (Ret ==
NULL && DoMessageWnd)
3337 Ret =
IntFindWindow(MsgWindows, ChildAfter, ClassAtom, &WindowName);
3349 TRACE(
"Leave NtUserFindWindowEx, ret %p\n", Ret);
3362 pDesktop = pWnd->head.rpdesk;
3367 if (pWnd == pwndDesktop)
3371 if (pWnd == pwndMessage)
3374 Parent = pWnd->spwndParent;
3385 if (
Parent == pwndDesktop)
3390 if (
Parent == pwndMessage)
3395 pDesktop =
Parent->head.rpdesk;
3407 WndAncestor = pwndNode;
3425 TRACE(
"Enter NtUserGetAncestor\n");
3444 TRACE(
"Leave NtUserGetAncestor returning %p\n", hwndAncestor);
3445 return hwndAncestor;
3465 INT fixedOwnerDrawHeight;
3478#define CBF_BUTTONDOWN 0x0002
3493 TRACE(
"Enter NtUserGetComboBoxInfo\n");
3528 NotSameppi = ppi != Wnd->
head.pti->ppi;
3557 TRACE(
"Leave NtUserGetComboBoxInfo, ret=%i\n", Ret);
3603 TRACE(
"Enter NtUserGetListBoxInfo\n");
3619 NotSameppi = ppi != Wnd->
head.pti->ppi;
3629 Ret =
descr->page_size;
3640 TRACE(
"Leave NtUserGetListBoxInfo, ret=%lu\n", Ret);
3667 TRACE(
"Enter NtUserSetParent\n");
3684 TRACE(
"Leave NtUserSetParent, ret=%p\n", Ret);
3733 PWND WndShell, WndListView;
3739 TRACE(
"Enter NtUserSetShellWindowEx\n");
3809 ti->
pDeskInfo->hShellWindow = hwndShell;
3811 ti->
pDeskInfo->spwndBkGnd = WndListView;
3823 TRACE(
"Leave NtUserSetShellWindowEx, ret=%i\n", Ret);
3894 ERR(
"NtUserSetWindowLong(): Index requires pointer size: %lu\n",
Index);
3905 Style.styleOld = OldValue;
3906 Style.styleNew = NewValue;
3913 WindowStation =
Window->head.pti->rpdesk->rpwinstaParent;
3917 Style.styleNew &= ~WS_EX_TOPMOST;
3937 Style.styleOld = OldValue;
3938 Style.styleNew = NewValue;
3951 Window->ExStyle &= ~WS_EX_WINDOWEDGE;
3958 ERR(
"IDMenu going null! %d\n",
Window->IDMenu);
3967 Window->state &= ~WNDS_HASMENU;
3970 ERR(
"IDMenu released 0x%p\n",pMenu);
4022 OldValue =
Window->dwUserData;
4023 Window->dwUserData = NewValue;
4027 ERR(
"NtUserSetWindowLong(): Unsupported index %lu\n",
Index);
4142 TRACE(
"Enter NtUserSetWindowWord\n");
4184 TRACE(
"Leave NtUserSetWindowWord, ret=%u\n", Ret);
4210#define GWLP_CONSOLE_LEADER_PID 0
4211#define GWLP_CONSOLE_LEADER_TID 4
4214 PWND pWnd, pwndActive;
4217 TRACE(
"Enter NtUserQueryWindow\n");
4278 if (pWnd->
head.pti->spwndDefaultIme)
4283 if (pWnd->
head.pti->spDefaultImc)
4294 ptiActive = pwndActive->
head.pti;
4303 TRACE(
"Leave NtUserQueryWindow, ret=%u\n",
Result);
4318 TRACE(
"Enter NtUserRegisterWindowMessage\n");
4321 if(MessageNameUnsafe ==
NULL)
4335 if (SafeMessageName.
Buffer)
4339 TRACE(
"Leave NtUserRegisterWindowMessage, ret=%u\n", Ret);
4354 TRACE(
"Enter NtUserSetWindowFNID\n");
4372 if (fnID < FNID_FIRST || fnID >
FNID_GHOST ||
4384 TRACE(
"Leave NtUserSetWindowFNID\n");
4478 TRACE(
"Enter NtUserDefSetText\n");
4480 if (WindowText !=
NULL)
4484 SafeText = ProbeForReadLargeString(WindowText);
4527 if (!Ret)
goto Exit;
4592 TRACE(
"Leave NtUserDefSetText, ret=%i\n", Ret);
4611 TRACE(
"Enter NtUserInternalGetWindowText\n");
4628 const WCHAR Terminator =
L'\0';
4657 TRACE(
"Leave NtUserInternalGetWindowText, ret=%i\n",
Result);
4675 TRACE(
"Enter ShowOwnedPopups Show: %s\n", (fShow ?
"TRUE" :
"FALSE"));
4683 while (win_array[
count])
4685 while (--
count >= 0)
4700 pWnd->
state &= ~WNDS_HIDDENPOPUP;
4719 TRACE(
"Leave ShowOwnedPopups\n");
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
#define UlongToHandle(ul)
#define DBG_DEFAULT_CHANNEL(ch)
PCALLPROCDATA CreateCallProc(IN PDESKTOP Desktop, IN WNDPROC WndProc, IN BOOL Unicode, IN PPROCESSINFO pi)
ULONG_PTR FASTCALL UserGetCPD(PVOID pvClsWnd, GETCPD Flags, ULONG_PTR ProcIn)
static __inline BOOL IsCallProcHandle(IN WNDPROC lpWndProc)
#define STATUS_INVALID_HANDLE
VOID FASTCALL DceResetActiveDCEs(PWND Window)
PDCE FASTCALL DceAllocDCE(PWND Window, DCE_TYPE Type)
void FASTCALL DceFreeWindowDCE(PWND)
#define ERROR_NOT_ENOUGH_MEMORY
#define NT_SUCCESS(StatCode)
#define ERROR_INVALID_PARAMETER
#define ERROR_ACCESS_DENIED
#define ValidateHwndNoErr(hwnd)
static void cleanup(void)
VOID Copy(PVOID Src, PVOID Dst, ULONG NumBytes)
VOID FASTCALL IntEngWindowChanged(_In_ struct _WND *Window, _In_ FLONG flChanged)
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define IsListEmpty(ListHead)
ULONG RtlCompareUnicodeString(PUNICODE_STRING s1, PUNICODE_STRING s2, BOOLEAN UpCase)
#define InitializeListHead(ListHead)
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
HWND FASTCALL IntGetThreadFocusWindow(VOID)
HWND FASTCALL co_UserSetFocus(PWND Window)
PUSER_MESSAGE_QUEUE gpqForeground
BOOL FASTCALL IntReleaseCapture(VOID)
HWND FASTCALL UserGetActiveWindow(VOID)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLint GLint GLint GLint GLint GLint y
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
VOID FASTCALL co_IntUserManualGuiCheck(BOOL Create)
#define ISITHOOKED(HookId)
#define HOOKID_TO_FLAG(HookId)
#define IMS_LOADTHREADLAYOUT
#define IMS_ACTIVATELAYOUT
#define WNDS2_WIN31COMPAT
#define QUERY_WINDOW_DEFAULT_ICONTEXT
#define QUERY_WINDOW_UNIQUE_THREAD_ID
#define QUERY_WINDOW_ACTIVE_IME
#define WNDS2_WIN40COMPAT
#define QUERY_WINDOW_FOCUS
#define GETPFNCLIENTW(fnid)
#define GETPFNCLIENTA(fnid)
#define QUERY_WINDOW_ACTIVE
#define WNDS_SERVERSIDEWINDOWPROC
#define UserHMGetHandle(obj)
#define WNDS_INTERNALPAINT
BOOL NTAPI RtlLargeStringToUnicodeString(PUNICODE_STRING, PLARGE_STRING)
#define QUERY_WINDOW_REAL_ID
#define NtUserSetWindowLongPtr
struct _THREADINFO * GetW32ThreadInfo(VOID)
#define GETPFNSERVER(fnid)
#define WNDS2_WMCREATEMSGPROCESSED
#define QUERY_WINDOW_FOREGROUND
#define CURSORF_FROMRESOURCE
#define CSF_SERVERSIDEPROC
#define GetWin32ClientInfo()
#define QUERY_WINDOW_UNIQUE_PROCESS_ID
#define QUERY_WINDOW_ISHUNG
#define QUERY_WINDOW_DEFAULT_IME
#define WNDS2_WIN50COMPAT
#define WNDS_SENDSIZEMOVEMSGS
#define WNDS_SENDERASEBACKGROUND
#define WNDS_ANSIWINDOWPROC
#define EXCEPTION_EXECUTE_HANDLER
BOOL FASTCALL SetLayeredStatus(PWND pWnd, BYTE set)
#define MmCopyToCaller(x, y, z)
#define ExFreePoolWithTag(_P, _T)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
VOID APIENTRY MsqRemoveWindowMessagesFromQueue(PWND Window)
VOID FASTCALL MsqDecPaintCountQueue(PTHREADINFO pti)
VOID FASTCALL co_MsqInsertMouseMessage(MSG *Msg, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook)
BOOL FASTCALL MsqIsHung(PTHREADINFO pti, DWORD TimeOut)
unsigned __int3264 UINT_PTR
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define GDI_OBJ_HMGR_POWNED
PVOID NTAPI PsGetCurrentProcessWin32Process(VOID)
NTSTATUS NTAPI PsLookupThreadByThreadId(IN HANDLE ThreadId, OUT PETHREAD *Thread)
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
LRESULT APIENTRY co_HOOK_CallHooks(INT HookId, INT Code, WPARAM wParam, LPARAM lParam)
UINT FASTCALL co_WinPosMinMaximize(PWND Wnd, UINT ShowFlag, RECT *NewPos)
VOID FASTCALL co_WinPosActivateOtherWindow(PWND Wnd)
BOOLEAN FASTCALL co_WinPosSetWindowPos(PWND Window, HWND WndInsertAfter, INT x, INT y, INT cx, INT cy, UINT flags)
LRESULT FASTCALL co_WinPosGetNonClientSize(PWND Window, RECT *WindowRect, RECT *ClientRect)
UINT FASTCALL co_WinPosGetMinMaxInfo(PWND Window, POINT *MaxSize, POINT *MaxPos, POINT *MinTrack, POINT *MaxTrack)
BOOL FASTCALL IntScreenToClient(PWND Wnd, LPPOINT lpPoint)
void FASTCALL co_WinPosSendSizeMove(PWND Wnd)
BOOLEAN FASTCALL co_WinPosShowWindow(PWND Wnd, INT Cmd)
NTSTATUS FASTCALL IntValidateWindowStationHandle(HWINSTA WindowStation, KPROCESSOR_MODE AccessMode, ACCESS_MASK DesiredAccess, PWINSTATION_OBJECT *Object, POBJECT_HANDLE_INFORMATION pObjectHandleInfo)
VOID FASTCALL UserLeave(VOID)
VOID FASTCALL UserEnterShared(VOID)
VOID FASTCALL UserEnterExclusive(VOID)
ATOM gaGuiConsoleWndClass
BOOL FASTCALL UserIsEnteredExclusive(VOID)
static __inline VOID UserDerefObjectCo(PVOID obj)
static __inline VOID UserRefObjectCo(PVOID obj, PUSER_REFERENCE_ENTRY UserReferenceEntry)
NTSTATUS NTAPI ObReferenceObjectByPointer(IN PVOID Object, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode)
#define WS_EX_NOPARENTNOTIFY
#define WS_EX_DLGMODALFRAME
VOID NTAPI KeDetachProcess(VOID)
VOID NTAPI KeAttachProcess(IN PKPROCESS Process)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define ProbeForReadUnicodeString(Ptr)
struct tagBaseWindow BaseWindow
WNDPROC pfnClientPrevious
struct _WINSTATION_OBJECT * prpwinsta
struct _DESKTOPINFO * pDeskInfo
struct _CLIENTINFO * pClientInfo
struct tagIMC * spDefaultImc
struct tagKL * KeyboardLayout
struct _WND * spwndDefaultIme
LIST_ENTRY WindowListHead
struct _USER_MESSAGE_QUEUE * MessageQueue
LIST_ENTRY ThreadListEntry
struct _WND * spwndLastActive
struct _WND::@5286 InternalPos
LARGE_UNICODE_STRING strName
struct _WND * spwndParent
HWND ahwnd[ANYSIZE_ARRAY]
struct tagWINDOWLIST * pNextList
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_ACCESS_DENIED
#define STATUS_INVALID_PARAMETER
#define STATUS_INSUFFICIENT_RESOURCES
#define WriteUnalignedUlongPtr
__forceinline unsigned long ReadUnalignedU32(const unsigned long *p)
#define ReadUnalignedUlongPtr
__forceinline void WriteUnalignedU32(unsigned long *p, unsigned long val)
#define WS_EX_SETANSICREATOR
BOOL FASTCALL co_UserRedrawWindow(PWND Window, const RECTL *UpdateRect, PREGION UpdateRgn, ULONG Flags)
RTL_ATOM FASTCALL IntAddAtom(LPWSTR AtomName)
FORCEINLINE PMENU UserGetMenuObject(HMENU hMenu)
#define ASSERT_REFS_CO(_obj_)
static __inline BOOL UserHeapFree(PVOID lpMem)
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
_Must_inspect_result_ _In_ WDFCMRESLIST List
POBJECT_TYPE ExWindowStationObjectType
VOID FASTCALL SetLastNtError(_In_ NTSTATUS Status)
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
BOOL NTAPI GreIsHandleValid(HGDIOBJ hobj)
NTSTATUS FASTCALL IntSafeCopyUnicodeStringTerminateNULL(PUNICODE_STRING Dest, PUNICODE_STRING Source)
FORCEINLINE BOOL RECTL_bIsEmptyRect(_In_ const RECTL *prcl)
FORCEINLINE VOID RECTL_vOffsetRect(_Inout_ RECTL *prcl, _In_ INT cx, _In_ INT cy)
BOOL FASTCALL IntGdiSetRegionOwner(HRGN hRgn, DWORD OwnerMask)
HMENU APIENTRY co_IntCallLoadMenu(HINSTANCE hModule, PUNICODE_STRING pMenuName)
HANDLE FASTCALL co_IntCopyImage(HANDLE hnd, UINT type, INT desiredx, INT desiredy, UINT flags)
BOOL FASTCALL IntMsgCreateStructW(PWND, CREATESTRUCTW *, CREATESTRUCTW *, PVOID *, PVOID *)
BOOL FASTCALL co_IntDestroyCaret(PTHREADINFO Win32Thread)
VOID UserAddCallProcToClass(IN OUT PCLS Class, IN PCALLPROCDATA CallProc)
VOID IntDereferenceClass(IN OUT PCLS Class, IN PDESKTOPINFO Desktop, IN PPROCESSINFO pi)
PCLS IntGetAndReferenceClass(PUNICODE_STRING ClassName, HINSTANCE hInstance, BOOL bDesktopThread)
VOID FASTCALL UserClipboardFreeWindow(PWND pWindow)
VOID FASTCALL UserClipboardRelease(PWND pWindow)
PCURICON_OBJECT FASTCALL UserGetCurIconObject(HCURSOR hCurIcon)
PDESKTOP FASTCALL IntGetActiveDesktop(VOID)
PTHREADINFO gptiDesktopThread
HWND FASTCALL IntGetCurrentThreadDesktopWindow(VOID)
PWND FASTCALL UserGetDesktopWindow(VOID)
BOOL IntDeRegisterShellHookWindow(HWND hWnd)
HWND FASTCALL IntGetMessageWindow(VOID)
HWND FASTCALL IntGetDesktopWindow(VOID)
NTSTATUS FASTCALL IntValidateDesktopHandle(HDESK Desktop, KPROCESSOR_MODE AccessMode, ACCESS_MASK DesiredAccess, PDESKTOP *Object)
PUSER_MESSAGE_QUEUE FASTCALL IntGetFocusMessageQueue(VOID)
VOID co_IntShellHookNotify(WPARAM Message, WPARAM wParam, LPARAM lParam)
PWND FASTCALL co_GetDesktopWindow(PWND pWnd)
static __inline PVOID DesktopHeapAlloc(IN PDESKTOP Desktop, IN SIZE_T Bytes)
#define UserIsMessageWindow(pWnd)
static __inline BOOL DesktopHeapFree(IN PDESKTOP Desktop, IN PVOID lpMem)
#define UserIsDesktopWindow(pWnd)
static __inline PVOID DesktopHeapAddressToUser(PVOID lpMem)
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
BOOL FASTCALL UserRegisterHotKey(PWND pWnd, int id, UINT fsModifiers, UINT vk)
VOID FASTCALL UnregisterWindowHotKeys(PWND pWnd)
BOOL FASTCALL IntImeCanDestroyDefIME(PWND pImeWnd, PWND pwndTarget)
PWND FASTCALL co_IntCreateDefaultImeWindow(PWND pwndTarget, HINSTANCE hInst)
BOOL FASTCALL IntImeCanDestroyDefIMEforChild(PWND pImeWnd, PWND pwndTarget)
BOOL FASTCALL IntWantImeWindow(PWND pwndTarget)
LRESULT FASTCALL co_IntSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
LONG NTAPI UserGetSystemMetrics(ULONG Index)
PMONITOR NTAPI UserGetMonitorObject(IN HMONITOR hMonitor)
PMONITOR NTAPI UserGetPrimaryMonitor(VOID)
PVOID UserGetObject(PUSER_HANDLE_TABLE ht, HANDLE handle, HANDLE_TYPE type)
BOOL FASTCALL UserMarkObjectDestroy(PVOID Object)
PVOID FASTCALL UserAssignmentLock(PVOID *ppvObj, PVOID pvNew)
BOOL FASTCALL UserDereferenceObject(PVOID Object)
BOOL FASTCALL UserDeleteObject(HANDLE h, HANDLE_TYPE type)
PUSER_HANDLE_TABLE gHandleTable
BOOL FASTCALL UserObjectInDestroy(HANDLE h)
PVOID FASTCALL UserCreateObject(PUSER_HANDLE_TABLE ht, PDESKTOP pDesktop, PTHREADINFO pti, HANDLE *h, HANDLE_TYPE type, ULONG size)
PVOID FASTCALL UserAssignmentUnlock(PVOID *ppvObj)
PVOID UserGetObjectNoErr(PUSER_HANDLE_TABLE ht, HANDLE handle, HANDLE_TYPE type)
VOID FASTCALL UserReferenceObject(PVOID obj)
VOID FASTCALL UserRemoveWindowProps(_In_ PWND Window)
HANDLE FASTCALL UserGetProp(_In_ PWND Window, _In_ ATOM Atom, _In_ BOOLEAN SystemProp)
BOOL FASTCALL DestroyTimersForWindow(PTHREADINFO pti, PWND Window)
ULONG FASTCALL IntSetStyle(PWND pwnd, ULONG set_bits, ULONG clear_bits)
HWND *FASTCALL IntWinListChildren(PWND Window)
DWORD_PTR APIENTRY NtUserQueryWindow(HWND hWnd, DWORD Index)
DWORD APIENTRY NtUserAlterWindowStyle(HWND hWnd, DWORD Index, LONG NewValue)
LONG_PTR FASTCALL co_UserSetWindowLongPtr(HWND hWnd, DWORD Index, LONG_PTR NewValue, BOOL Ansi)
PWND FASTCALL co_IntSetParent(PWND Wnd, PWND WndNewParent)
BOOL APIENTRY NtUserSetWindowFNID(HWND hWnd, WORD fnID)
#define GWLP_CONSOLE_LEADER_PID
BOOL APIENTRY NtUserSetShellWindowEx(HWND hwndShell, HWND hwndListView)
LONG APIENTRY NtUserSetWindowLong(HWND hWnd, DWORD Index, LONG NewValue, BOOL Ansi)
DWORD FASTCALL IntGetWindowContextHelpId(PWND pWnd)
static LONG_PTR co_IntSetWindowLongPtr(HWND hWnd, DWORD Index, LONG_PTR NewValue, BOOL Ansi, ULONG Size, BOOL bAlter)
BOOL APIENTRY NtUserDefSetText(HWND hWnd, PLARGE_STRING WindowText)
struct _WND2CBOX WND2CBOX
HWND FASTCALL co_UserSetParent(HWND hWndChild, HWND hWndNewParent)
VOID FASTCALL IntFreeHwndList(PWINDOWLIST pwlTarget)
struct _WND2CBOX * PWND2CBOX
HWND APIENTRY NtUserFindWindowEx(HWND hwndParent, HWND hwndChildAfter, PUNICODE_STRING ucClassName, PUNICODE_STRING ucWindowName, DWORD dwUnknown)
UINT APIENTRY NtUserRegisterWindowMessage(PUNICODE_STRING MessageNameUnsafe)
HWND NTAPI NtUserCreateWindowEx(DWORD dwExStyle, PLARGE_STRING plstrClassName, PLARGE_STRING plstrClsVersion, PLARGE_STRING plstrWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam, DWORD dwFlags, PVOID acbiBuffer)
PWND FASTCALL IntGetParent(PWND Wnd)
HWND *FASTCALL IntWinListOwnedPopups(PWND Window)
PWND FASTCALL UserGetWindowObject(HWND hWnd)
WNDPROC FASTCALL IntGetWindowProc(PWND pWnd, BOOL Ansi)
static VOID UserFreeWindowInfo(PTHREADINFO ti, PWND Wnd)
PWND FASTCALL IntGetWindowObject(HWND hWnd)
static BOOL FASTCALL IntCheckFrameEdge(ULONG Style, ULONG ExStyle)
PVOID FASTCALL IntReAllocatePoolWithTag(POOL_TYPE PoolType, PVOID pOld, SIZE_T cbOld, SIZE_T cbNew, ULONG Tag)
PWINDOWLIST FASTCALL IntPopulateHwndList(PWINDOWLIST pwl, PWND pwnd, DWORD dwFlags)
LONG FASTCALL co_UserSetWindowLong(HWND hWnd, DWORD Index, LONG NewValue, BOOL Ansi)
PWND FASTCALL IntCreateWindow(CREATESTRUCTW *Cs, PLARGE_STRING WindowName, PCLS Class, PWND ParentWindow, PWND OwnerWindow, PVOID acbiBuffer, PDESKTOP pdeskCreated, DWORD dwVer)
static WNDPROC IntSetWindowProc(PWND pWnd, WNDPROC NewWndProc, BOOL Ansi)
BOOL FASTCALL IntEnableWindow(HWND hWnd, BOOL bEnable)
DWORD APIENTRY NtUserGetListBoxInfo(HWND hWnd)
HWND FASTCALL IntFindWindow(PWND Parent, PWND ChildAfter, RTL_ATOM ClassAtom, PUNICODE_STRING WindowName)
VOID FASTCALL IntUnlinkWindow(PWND Wnd)
BOOL FASTCALL IntShowOwnedPopups(PWND OwnerWnd, BOOL fShow)
LRESULT co_UserFreeWindow(PWND Window, PPROCESSINFO ProcessData, PTHREADINFO ThreadData, BOOLEAN SendMessages)
BOOL FASTCALL IntGrowHwndList(PWINDOWLIST *ppwl)
struct HEADCOMBO * LPHEADCOMBO
PWND FASTCALL VerifyWnd(PWND pWnd)
void FASTCALL IntFixWindowCoordinates(CREATESTRUCTW *Cs, PWND ParentWindow, DWORD *dwShowMode)
BOOL FASTCALL IntIsTopLevelWindow(PWND pWnd)
HWND FASTCALL IntGetWindow(HWND hWnd, UINT uCmd)
static void IntSendDestroyMsg(HWND hWnd)
PWND FASTCALL co_UserCreateWindowEx(CREATESTRUCTW *Cs, PUNICODE_STRING ClassName, PLARGE_STRING WindowName, PVOID acbiBuffer, DWORD dwVer)
HWND FASTCALL UserGetShellWindow(VOID)
BOOL FASTCALL IntValidateOwnerDepth(PWND Wnd, PWND Owner)
VOID FASTCALL IntRemoveTrackMouseEvent(PDESKTOP pDesk)
NTSTATUS NTAPI ProbeAndCaptureLargeString(OUT PLARGE_STRING plstrSafe, IN PLARGE_STRING plstrUnsafe)
WORD APIENTRY NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewValue)
HWND APIENTRY NtUserGetAncestor(_In_ HWND hWnd, _In_ UINT uType)
VOID FASTCALL IntProcessOwnerSwap(PWND Wnd, PWND WndNewOwner, PWND WndOldOwner)
BOOLEAN co_UserDestroyWindow(PVOID Object)
#define GWLP_CONSOLE_LEADER_TID
HWND APIENTRY NtUserSetParent(HWND hWndChild, HWND hWndNewParent)
static BOOL IntWndIsDefaultIme(_In_ PWND Window)
BOOL FASTCALL IntIsWindow(HWND hWnd)
BOOL APIENTRY DefSetText(PWND Wnd, PCWSTR WindowText)
BOOLEAN APIENTRY NtUserDestroyWindow(HWND Wnd)
BOOL FASTCALL IntIsChildWindow(PWND Parent, PWND BaseWindow)
static HWND FASTCALL IntSetOwner(HWND hWnd, HWND hWndNewOwner)
NTSTATUS NTAPI NtUserBuildHwndList(HDESK hDesktop, HWND hwndParent, BOOLEAN bChildren, ULONG dwThreadId, ULONG cHwnd, HWND *phwndList, ULONG *pcHwndNeeded)
BOOL FASTCALL UserUpdateUiState(PWND Wnd, WPARAM wParam)
PWINDOWLIST FASTCALL IntBuildHwndList(PWND pwnd, DWORD dwFlags, PTHREADINFO pti)
VOID FASTCALL IntLinkHwnd(PWND Wnd, HWND hWndPrev)
VOID FASTCALL IntLinkWindow(PWND Wnd, PWND WndInsertAfter)
BOOL APIENTRY NtUserGetComboBoxInfo(HWND hWnd, PCOMBOBOXINFO pcbi)
BOOL FASTCALL IntIsWindowVisible(PWND Wnd)
static void IntSendParentNotify(PWND pWindow, UINT msg)
INT APIENTRY NtUserInternalGetWindowText(HWND hWnd, LPWSTR lpString, INT nMaxCount)
PWND FASTCALL UserGetAncestor(_In_ PWND pWnd, _In_ UINT uType)
PWND FASTCALL IntGetNonChildAncestor(PWND pWnd)
VOID FASTCALL IntDestroyOwnedWindows(PWND Window)
static VOID WndSetPrev(_Inout_ PWND pwnd, _In_opt_ PWND pwndPrev)
#define IntIsBroadcastHwnd(hWnd)
static VOID WndSetOwner(_Inout_ PWND pwnd, _In_opt_ PWND pwndOwner)
#define IntIsDesktopWindow(WndObj)
static VOID WndSetChild(_Inout_ PWND pwnd, _In_opt_ PWND pwndChild)
#define IS_WND_IMELIKE(pWnd)
static VOID WndSetNext(_Inout_ PWND pwnd, _In_opt_ PWND pwndNext)
#define IntGetWndThreadId(WndObj)
#define IntWndBelongsToThread(WndObj, W32Thread)
static VOID WndSetParent(_Inout_ PWND pwnd, _In_opt_ PWND pwndParent)
#define IS_WND_CHILD(pWnd)
#define IntGetWndProcessId(WndObj)
struct tagWINDOWLIST WINDOWLIST
static VOID WndSetLastActive(_Inout_ PWND pwnd, _In_opt_ PWND pwndLastActive)
#define STARTF_USEPOSITION
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
ENGAPI ULONG APIENTRY EngGetLastError(VOID)
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
#define ERROR_TLW_WITH_WSCHILD
#define ERROR_INVALID_INDEX
#define ERROR_INVALID_GW_COMMAND
#define ERROR_INVALID_MENU_HANDLE
#define ERROR_INVALID_WINDOW_HANDLE
#define ERROR_CANNOT_FIND_WND_CLASS
#define STATE_SYSTEM_PRESSED
#define HSHELL_WINDOWDESTROYED
#define HSHELL_WINDOWCREATED
#define LR_COPYFROMRESOURCE
#define IS_INTRESOURCE(i)
#define RDW_NOINTERNALPAINT
#define CB_GETCOMBOBOXINFO
#define LB_GETLISTBOXINFO
#define WM_MDIREFRESHMENU
#define STATE_SYSTEM_INVISIBLE
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
#define WS_EX_NOINHERITLAYOUT
_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
_Must_inspect_result_ _In_ ULONG Flags
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
#define ObDereferenceObject
#define PsGetCurrentProcess