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;
1719#define IS_DEFAULT(x) ((x) == CW_USEDEFAULT || (x) == (SHORT)0x8000)
1734 if (pMonitor ==
NULL)
1788 TRACE(
"Strange use of CW_USEDEFAULT in nHeight\n");
1824 BOOL bUnicodeWindow;
1870 pdeskCreated ? pdeskCreated : pti->
rpdesk,
1881 TRACE(
"Created window object with handle %p\n",
hWnd);
1886 TRACE(
"CreateWindow setting desktop.\n");
1932 pWnd->
head.pti->cWindows++;
2017 if ( !bUnicodeWindow &&
2033 pWnd->
state &= ~WNDS_ANSIWINDOWPROC;
2049 ERR(
"Warning: Unable to create CallProc for edit control. Control may not operate correctly! hwnd %p\n",
hWnd);
2095 pWnd->
ExStyle &= ~WS_EX_WINDOWEDGE;
2123 if (hMenu)
IntSetMenu(pWnd, hMenu, &MenuChanged);
2130 if ( ParentWindow &&
2131 ParentWindow != ParentWindow->
head.
rpdesk->spwndMessage &&
2132 ParentWindow != ParentWindow->
head.
rpdesk->pDeskInfo->spwnd )
2171 ERR(
"IntCreateWindow Allocation Error.\n");
2195 POINT MaxSize, MaxPos, MinTrack, MaxTrack;
2209 ERR(
"Thread is not attached to a desktop! Cannot create window (%wZ)\n", ClassName);
2212 WinSta = pti->
rpdesk->rpwinstaParent;
2223 ERR(
"Failed to find class %wZ\n", ClassName);
2244 ERR(
"Cannot create a child window (%wZ) without a parent\n", ClassName);
2264 ERR(
"Got invalid parent window handle for %wZ\n", ClassName);
2267 else if (hWndOwner && !OwnerWindow)
2269 ERR(
"Got invalid owner window handle for %wZ\n", ClassName);
2270 ParentWindow =
NULL;
2279 ERR(
"an owned window must be created as top-level\n");
2286 OwnerWindow = OwnerWindow->spwndParent;
2308 ERR(
"IntCreateWindow(%wZ) failed\n", ClassName);
2329 if (!pCsw || !pCbtCreate)
2331 ERR(
"UserHeapAlloc() failed!\n");
2337 ERR(
"IntMsgCreateStructW() failed!\n");
2341 pCbtCreate->
lpcs = pCsw;
2348 ERR(
"WH_CBT HCBT_CREATEWND hook failed! 0x%x\n",
Result);
2356 hwndInsertAfter = pCbtCreate->hwndInsertAfter;
2363 Cs->
x += ParentWindow->rcClient.left;
2364 Cs->
y += ParentWindow->rcClient.top;
2375 if (
Size.cx > MaxTrack.
x)
Size.cx = MaxTrack.
x;
2376 if (
Size.cy > MaxTrack.
y)
Size.cy = MaxTrack.
y;
2377 if (
Size.cx < MinTrack.
x)
Size.cx = MinTrack.
x;
2378 if (
Size.cy < MinTrack.
y)
Size.cy = MinTrack.
y;
2381 Window->rcWindow.left = Cs->
x;
2395 if (ParentWindow !=
NULL)
2400 Window->rcWindow.right = ParentWindow->rcClient.right - (
Window->rcWindow.left - ParentWindow->rcClient.left);
2409 ERR(
"Window 0x%p has been linked too early!\n",
Window);
2422 if (pti != ParentWindow->head.pti)
2434 ERR(
"co_UserCreateWindowEx(%wZ): NCCREATE message failed\n", ClassName);
2439 if (ParentWindow !=
NULL)
2478 MaxPos.
x =
Window->rcWindow.left;
2479 MaxPos.
y =
Window->rcWindow.top;
2487 MaxPos.
y -
Window->rcWindow.top);
2494 ERR(
"co_UserCreateWindowEx(%wZ): WM_CREATE message failed\n", ClassName);
2595 TRACE(
"co_UserCreateWindowEx(%wZ): Created window %p\n", ClassName,
hWnd);
2601 TRACE(
"co_UserCreateWindowEx(): Error Created window!\n");
2640 lstrTemp = *plstrUnsafe;
2649 if (lstrTemp.
Length != 0)
2674 plstrSafe->Buffer = pvBuffer;
2675 plstrSafe->Length = lstrTemp.
Length;
2676 plstrSafe->MaximumLength = lstrTemp.
Length;
2722 ERR(
"NtUserCreateWindowEx: Got an invalid menu handle!\n");
2732 ERR(
"NtUserCreateWindowEx: failed to capture plstrWindowName\n");
2737 plstrWindowName = &lstrWindowName;
2744 ustrClassName.
Length = 0;
2753 ERR(
"NtUserCreateWindowEx: failed to capture plstrClassName\n");
2770 ustrClsVersion.
Length = 0;
2779 ERR(
"NtUserCreateWindowEx: failed to capture plstrClsVersion\n");
2813 ERR(
"co_UserCreateWindowEx failed!\n");
2820 if (lstrWindowName.
Buffer)
2824 if (lstrClassName.
Buffer)
2828 if (lstrClsVersion.
Buffer)
2848 for (phWnd =
List; *phWnd; ++phWnd)
2865 ERR(
"IntWndBelongsToThread(0x%p) is FALSE, ignoring.\n", pWnd);
2888 TRACE(
"Tried to destroy a window twice\n");
2895 TRACE(
"co_UserDestroyWindow(Window = 0x%p, hWnd = 0x%p)\n",
Window,
hWnd);
2898 if (
Window->head.pti != ti)
2913 ERR(
"Destroy Window WH_CBT Call Hook return!\n");
2956 if ((pwndTemp =
Window->spwndOwner))
2977 if (
Window->head.pti->MessageQueue->spwndActive ==
Window)
2978 Window->head.pti->MessageQueue->spwndActive =
NULL;
2979 if (
Window->head.pti->MessageQueue->spwndFocus ==
Window)
2980 Window->head.pti->MessageQueue->spwndFocus =
NULL;
2981 if (
Window->head.pti->MessageQueue->spwndActivePrev ==
Window)
2982 Window->head.pti->MessageQueue->spwndActivePrev =
NULL;
2983 if (
Window->head.pti->MessageQueue->spwndCapture ==
Window)
2984 Window->head.pti->MessageQueue->spwndCapture =
NULL;
2994 ERR(
"Destroying the ShellWindow!\n");
3063 TRACE(
"Enter NtUserDestroyWindow\n");
3074 TRACE(
"Leave NtUserDestroyWindow, ret=%u\n",
ret);
3086 BOOL CheckWindowName;
3093 CheckWindowName = WindowName->
Buffer != 0;
3117 if (!ClassAtom ||
Child->pcls->atomNVClassName == ClassAtom)
3123 if(!CheckWindowName ||
3124 (
Child->strName.Length < 0xFFFF &&
3164 HWND hwndChildAfter,
3175 TRACE(
"Enter NtUserFindWindowEx\n");
3178 if (ucClassName !=
NULL || ucWindowName !=
NULL)
3182 if (ucClassName !=
NULL)
3185 if (ClassName.
Length != 0)
3197 if (!IntGetAtomFromStringOrAtom(&ClassName,
3205 if (ucWindowName !=
NULL)
3208 if (WindowName.Length != 0)
3223 if (ucClassName !=
NULL)
3244 DoMessageWnd =
TRUE;
3267 PWND TopLevelWindow;
3286 CheckWindowName = WindowName.Buffer != 0;
3304 WindowMatches = !CheckWindowName ||
3307 ClassMatches = (ClassAtom == (
RTL_ATOM)0) ||
3310 if (WindowMatches && ClassMatches)
3330 TRACE(
"FindWindowEx: Not Desktop Parent!\n");
3334 if (Ret ==
NULL && DoMessageWnd)
3340 Ret =
IntFindWindow(MsgWindows, ChildAfter, ClassAtom, &WindowName);
3352 TRACE(
"Leave NtUserFindWindowEx, ret %p\n", Ret);
3365 pDesktop = pWnd->head.rpdesk;
3370 if (pWnd == pwndDesktop)
3374 if (pWnd == pwndMessage)
3377 Parent = pWnd->spwndParent;
3388 if (
Parent == pwndDesktop)
3393 if (
Parent == pwndMessage)
3398 pDesktop =
Parent->head.rpdesk;
3410 WndAncestor = pwndNode;
3428 TRACE(
"Enter NtUserGetAncestor\n");
3447 TRACE(
"Leave NtUserGetAncestor returning %p\n", hwndAncestor);
3448 return hwndAncestor;
3468 INT fixedOwnerDrawHeight;
3481#define CBF_BUTTONDOWN 0x0002
3496 TRACE(
"Enter NtUserGetComboBoxInfo\n");
3531 NotSameppi = ppi != Wnd->
head.pti->ppi;
3560 TRACE(
"Leave NtUserGetComboBoxInfo, ret=%i\n", Ret);
3606 TRACE(
"Enter NtUserGetListBoxInfo\n");
3622 NotSameppi = ppi != Wnd->
head.pti->ppi;
3632 Ret =
descr->page_size;
3643 TRACE(
"Leave NtUserGetListBoxInfo, ret=%lu\n", Ret);
3670 TRACE(
"Enter NtUserSetParent\n");
3687 TRACE(
"Leave NtUserSetParent, ret=%p\n", Ret);
3736 PWND WndShell, WndListView;
3742 TRACE(
"Enter NtUserSetShellWindowEx\n");
3812 ti->
pDeskInfo->hShellWindow = hwndShell;
3814 ti->
pDeskInfo->spwndBkGnd = WndListView;
3826 TRACE(
"Leave NtUserSetShellWindowEx, ret=%i\n", Ret);
3897 ERR(
"NtUserSetWindowLong(): Index requires pointer size: %lu\n",
Index);
3908 Style.styleOld = OldValue;
3909 Style.styleNew = NewValue;
3916 WindowStation =
Window->head.pti->rpdesk->rpwinstaParent;
3920 Style.styleNew &= ~WS_EX_TOPMOST;
3940 Style.styleOld = OldValue;
3941 Style.styleNew = NewValue;
3954 Window->ExStyle &= ~WS_EX_WINDOWEDGE;
3961 ERR(
"IDMenu going null! %d\n",
Window->IDMenu);
3970 Window->state &= ~WNDS_HASMENU;
3973 ERR(
"IDMenu released 0x%p\n",pMenu);
4025 OldValue =
Window->dwUserData;
4026 Window->dwUserData = NewValue;
4030 ERR(
"NtUserSetWindowLong(): Unsupported index %lu\n",
Index);
4145 TRACE(
"Enter NtUserSetWindowWord\n");
4187 TRACE(
"Leave NtUserSetWindowWord, ret=%u\n", Ret);
4213#define GWLP_CONSOLE_LEADER_PID 0
4214#define GWLP_CONSOLE_LEADER_TID 4
4217 PWND pWnd, pwndActive;
4220 TRACE(
"Enter NtUserQueryWindow\n");
4281 if (pWnd->
head.pti->spwndDefaultIme)
4286 if (pWnd->
head.pti->spDefaultImc)
4297 ptiActive = pwndActive->
head.pti;
4306 TRACE(
"Leave NtUserQueryWindow, ret=%u\n",
Result);
4321 TRACE(
"Enter NtUserRegisterWindowMessage\n");
4324 if(MessageNameUnsafe ==
NULL)
4338 if (SafeMessageName.
Buffer)
4342 TRACE(
"Leave NtUserRegisterWindowMessage, ret=%u\n", Ret);
4357 TRACE(
"Enter NtUserSetWindowFNID\n");
4375 if (fnID < FNID_FIRST || fnID >
FNID_GHOST ||
4387 TRACE(
"Leave NtUserSetWindowFNID\n");
4481 TRACE(
"Enter NtUserDefSetText\n");
4483 if (WindowText !=
NULL)
4487 SafeText = ProbeForReadLargeString(WindowText);
4530 if (!Ret)
goto Exit;
4595 TRACE(
"Leave NtUserDefSetText, ret=%i\n", Ret);
4614 TRACE(
"Enter NtUserInternalGetWindowText\n");
4631 const WCHAR Terminator =
L'\0';
4660 TRACE(
"Leave NtUserInternalGetWindowText, ret=%i\n",
Result);
4678 TRACE(
"Enter ShowOwnedPopups Show: %s\n", (fShow ?
"TRUE" :
"FALSE"));
4686 while (win_array[
count])
4688 while (--
count >= 0)
4703 pWnd->
state &= ~WNDS_HIDDENPOPUP;
4722 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
static void cleanup(void)
#define IS_INTRESOURCE(x)
_ACRTIMP int __cdecl _wcsicmp(const wchar_t *, const wchar_t *)
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
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
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)
BOOL FASTCALL IntImeCanDestroyDefIMEforChild(_In_ PWND pImeWnd, _In_ PWND pwndTarget)
PWND FASTCALL co_IntCreateDefaultImeWindow(_In_ PWND pwndTarget, _In_ HINSTANCE hInst)
BOOL FASTCALL IntImeCanDestroyDefIME(_In_ PWND pImeWnd, _In_ PWND pwndTarget)
BOOL FASTCALL IntWantImeWindow(_In_ PWND pwndTarget)
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)
#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::@5412 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)
#define ValidateHwndNoErr(hwnd)
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)
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
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 RDW_NOINTERNALPAINT
#define CB_GETCOMBOBOXINFO
#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