43 if (
Flags & ~(UISF_HIDEFOCUS | UISF_HIDEACCEL | UISF_ACTIVE))
56 if (
Flags & UISF_HIDEFOCUS)
58 if (
Flags & UISF_HIDEACCEL)
63 if (
Flags & UISF_HIDEFOCUS)
65 if (
Flags & UISF_HIDEACCEL)
145 ULONG styleOld, styleNew;
146 styleOld = pwnd->
style;
147 styleNew = (pwnd->
style | set_bits) & ~clear_bits;
148 if (styleNew == styleOld)
return styleNew;
149 pwnd->
style = styleNew;
194 if (!Temp)
return TRUE;
248 TRACE(
"IntEnableWindow SF NULL\n");
290 ERR(
"Failed to allocate memory for children array\n");
334 ERR(
"Failed to allocate memory for children array\n");
373 if (
Owner == Wnd)
break;
433 if (FoundWnd !=
NULL)
528 for (
i = 0; pWndArray[
i];
i++)
536 TRACE(
"destroyed itself while in WM_DESTROY!\n");
589 TRACE(
"Tried to call co_UserFreeWindow() twice\n");
593 Window->style &= ~WS_VISIBLE;
594 Window->head.pti->cVisWindows--;
610 for (ChildHandle = Children; *ChildHandle; ++ChildHandle)
637 if (BelongsToThreadData)
700 Window->state &= ~WNDS_INTERNALPAINT;
728 if (
Window->PropListItems)
731 TRACE(
"Window->PropListItems %lu\n",
Window->PropListItems);
755 Window->head.pti->pDeskInfo,
765 Window->head.pti->cWindows--;
836 return (gcpd ? gcpd : Ret);
883 pWnd->
state &= ~WNDS_ANSIWINDOWPROC;
893 pWnd->
state &= ~WNDS_ANSIWINDOWPROC;
896 pWnd->
state &= ~WNDS_SERVERSIDEWINDOWPROC;
914 pWnd->
lpfnWndProc = (chWndProc ? chWndProc : NewWndProc);
949 if (Wnd == WndInsertAfter)
951 ERR(
"Trying to link window 0x%p to itself\n", Wnd);
952 ASSERT(WndInsertAfter != Wnd);
989 Wnd->
ExStyle &= ~WS_EX_TOPMOST;
1001 while (WndInsertAfter && WndInsertAfter->
spwndNext)
1003 WndInsertAfter = WndInsertAfter->
spwndNext;
1007 Wnd->
ExStyle &= ~WS_EX_TOPMOST;
1018 PWND WndInsertBefore;
1034 WndInsertBefore = WndInsertBefore->
spwndNext;
1043 PWND WndInsertAfter;
1047 if (WndInsertAfter ==
NULL)
1054 if (Wnd == WndInsertAfter)
1056 ERR(
"Trying to link window 0x%p to itself\n", Wnd);
1057 ASSERT(WndInsertAfter != Wnd);
1068 Wnd->
ExStyle &= ~WS_EX_TOPMOST;
1087 if (Wnd->
head.pti != WndOldOwner->
head.pti)
1090 Wnd->
head.pti == WndNewOwner->
head.pti ||
1091 WndOldOwner->
head.pti != WndNewOwner->
head.pti )
1100 if (Wnd->
head.pti != WndNewOwner->
head.pti)
1103 WndOldOwner->
head.pti != WndNewOwner->
head.pti )
1117 PWND Wnd, WndOldOwner, WndNewOwner;
1129 if (!WndNewOwner && hWndNewOwner)
1158 PWND WndOldParent, pWndExam;
1177 TRACE(
"IntSetParent try to set a child as a parent.\n");
1182 pWndExam = WndNewParent;
1186 if (Wnd == pWndExam)
1188 TRACE(
"IntSetParent Failed Test for set parent to parent!\n");
1204 ERR(
"IntSetParent Window must belong to current process!\n");
1210 if ( WndOldParent &&
1221 if (WndNewParent != WndOldParent)
1234 ERR(
"SetParent Top Most from Pop up!\n");
1257 if (WndOldParent && (Wnd->
head.pti != WndOldParent->
head.pti))
1265 if (Wnd->
head.pti != WndNewParent->
head.pti)
1285 pt.x,
pt.y, 0, 0, swFlags);
1289 return WndOldParent;
1308 ERR(
"UserSetParent Access Denied!\n");
1317 ERR(
"UserSetParent Bad New Parent!\n");
1331 ERR(
"UserSetParent Bad Child!\n");
1349 return hWndOldParent;
1436#define INITIAL_COUNT 32
1476 if (*ppwl != pwlTarget)
1525 ULONG* pcHwndNeeded)
1530 if (pcHwndNeeded ==
NULL)
1577 if (dwCount++ < cHwnd && phwndList)
1595 if (
Window->spwndChild && bChildren)
1631 ERR(
"Thread Id is not valid!\n");
1638 TRACE(
"Tried to enumerate windows of a non gui thread\n");
1655 if (dwCount < cHwnd && phwndList)
1670 ERR(
"Failure to build window list!\n");
1683 *pcHwndNeeded = dwCount;
1713#define IS_DEFAULT(x) ((x) == CW_USEDEFAULT || (x) == (SHORT)0x8000)
1724 if(pMonitor ==
NULL)
1778 TRACE(
"Strange use of CW_USEDEFAULT in nHeight\n");
1814 BOOL bUnicodeWindow;
1860 pdeskCreated ? pdeskCreated : pti->
rpdesk,
1871 TRACE(
"Created window object with handle %p\n",
hWnd);
1876 TRACE(
"CreateWindow setting desktop.\n");
1922 pWnd->
head.pti->cWindows++;
2007 if ( !bUnicodeWindow &&
2023 pWnd->
state &= ~WNDS_ANSIWINDOWPROC;
2039 ERR(
"Warning: Unable to create CallProc for edit control. Control may not operate correctly! hwnd %p\n",
hWnd);
2085 pWnd->
ExStyle &= ~WS_EX_WINDOWEDGE;
2113 if (hMenu)
IntSetMenu(pWnd, hMenu, &MenuChanged);
2120 if ( ParentWindow &&
2121 ParentWindow != ParentWindow->
head.
rpdesk->spwndMessage &&
2122 ParentWindow != ParentWindow->
head.
rpdesk->pDeskInfo->spwnd )
2161 ERR(
"IntCreateWindow Allocation Error.\n");
2185 POINT MaxSize, MaxPos, MinTrack, MaxTrack;
2199 ERR(
"Thread is not attached to a desktop! Cannot create window (%wZ)\n", ClassName);
2202 WinSta = pti->
rpdesk->rpwinstaParent;
2213 ERR(
"Failed to find class %wZ\n", ClassName);
2234 ERR(
"Cannot create a child window (%wZ) without a parent\n", ClassName);
2254 ERR(
"Got invalid parent window handle for %wZ\n", ClassName);
2257 else if (hWndOwner && !OwnerWindow)
2259 ERR(
"Got invalid owner window handle for %wZ\n", ClassName);
2260 ParentWindow =
NULL;
2269 ERR(
"an owned window must be created as top-level\n");
2276 OwnerWindow = OwnerWindow->spwndParent;
2298 ERR(
"IntCreateWindow(%wZ) failed\n", ClassName);
2319 if (!pCsw || !pCbtCreate)
2321 ERR(
"UserHeapAlloc() failed!\n");
2327 ERR(
"IntMsgCreateStructW() failed!\n");
2331 pCbtCreate->
lpcs = pCsw;
2338 ERR(
"WH_CBT HCBT_CREATEWND hook failed! 0x%x\n",
Result);
2346 hwndInsertAfter = pCbtCreate->hwndInsertAfter;
2353 Cs->
x += ParentWindow->rcClient.left;
2354 Cs->
y += ParentWindow->rcClient.top;
2365 if (
Size.cx > MaxTrack.
x)
Size.cx = MaxTrack.
x;
2366 if (
Size.cy > MaxTrack.
y)
Size.cy = MaxTrack.
y;
2367 if (
Size.cx < MinTrack.
x)
Size.cx = MinTrack.
x;
2368 if (
Size.cy < MinTrack.
y)
Size.cy = MinTrack.
y;
2371 Window->rcWindow.left = Cs->
x;
2385 if (ParentWindow !=
NULL)
2390 Window->rcWindow.right = ParentWindow->rcClient.right - (
Window->rcWindow.left - ParentWindow->rcClient.left);
2399 ERR(
"Window 0x%p has been linked too early!\n",
Window);
2412 if (pti != ParentWindow->head.pti)
2424 ERR(
"co_UserCreateWindowEx(%wZ): NCCREATE message failed\n", ClassName);
2429 if (ParentWindow !=
NULL)
2468 MaxPos.
x =
Window->rcWindow.left;
2469 MaxPos.
y =
Window->rcWindow.top;
2477 MaxPos.
y -
Window->rcWindow.top);
2484 ERR(
"co_UserCreateWindowEx(%wZ): WM_CREATE message failed\n", ClassName);
2575 TRACE(
"co_UserCreateWindowEx(%wZ): Created window %p\n", ClassName,
hWnd);
2581 TRACE(
"co_UserCreateWindowEx(): Error Created window!\n");
2620 lstrTemp = *plstrUnsafe;
2629 if (lstrTemp.
Length != 0)
2654 plstrSafe->Buffer = pvBuffer;
2655 plstrSafe->Length = lstrTemp.
Length;
2656 plstrSafe->MaximumLength = lstrTemp.
Length;
2702 ERR(
"NtUserCreateWindowEx: Got an invalid menu handle!\n");
2712 ERR(
"NtUserCreateWindowEx: failed to capture plstrWindowName\n");
2717 plstrWindowName = &lstrWindowName;
2724 ustrClassName.
Length = 0;
2733 ERR(
"NtUserCreateWindowEx: failed to capture plstrClassName\n");
2750 ustrClsVersion.
Length = 0;
2759 ERR(
"NtUserCreateWindowEx: failed to capture plstrClsVersion\n");
2793 ERR(
"co_UserCreateWindowEx failed!\n");
2800 if (lstrWindowName.
Buffer)
2804 if (lstrClassName.
Buffer)
2808 if (lstrClsVersion.
Buffer)
2828 for (phWnd =
List; *phWnd; ++phWnd)
2845 ERR(
"IntWndBelongsToThread(0x%p) is FALSE, ignoring.\n", pWnd);
2868 TRACE(
"Tried to destroy a window twice\n");
2875 TRACE(
"co_UserDestroyWindow(Window = 0x%p, hWnd = 0x%p)\n",
Window,
hWnd);
2878 if (
Window->head.pti != ti)
2893 ERR(
"Destroy Window WH_CBT Call Hook return!\n");
2936 if ((pwndTemp =
Window->spwndOwner))
2957 if (
Window->head.pti->MessageQueue->spwndActive ==
Window)
2958 Window->head.pti->MessageQueue->spwndActive =
NULL;
2959 if (
Window->head.pti->MessageQueue->spwndFocus ==
Window)
2960 Window->head.pti->MessageQueue->spwndFocus =
NULL;
2961 if (
Window->head.pti->MessageQueue->spwndActivePrev ==
Window)
2962 Window->head.pti->MessageQueue->spwndActivePrev =
NULL;
2963 if (
Window->head.pti->MessageQueue->spwndCapture ==
Window)
2964 Window->head.pti->MessageQueue->spwndCapture =
NULL;
2974 ERR(
"Destroying the ShellWindow!\n");
3043 TRACE(
"Enter NtUserDestroyWindow\n");
3054 TRACE(
"Leave NtUserDestroyWindow, ret=%u\n",
ret);
3066 BOOL CheckWindowName;
3073 CheckWindowName = WindowName->
Buffer != 0;
3097 if (!ClassAtom ||
Child->pcls->atomNVClassName == ClassAtom)
3103 if(!CheckWindowName ||
3104 (
Child->strName.Length < 0xFFFF &&
3144 HWND hwndChildAfter,
3155 TRACE(
"Enter NtUserFindWindowEx\n");
3158 if (ucClassName !=
NULL || ucWindowName !=
NULL)
3162 if (ucClassName !=
NULL)
3165 if (ClassName.
Length != 0)
3177 if (!IntGetAtomFromStringOrAtom(&ClassName,
3185 if (ucWindowName !=
NULL)
3188 if (WindowName.Length != 0)
3203 if (ucClassName !=
NULL)
3224 DoMessageWnd =
TRUE;
3247 PWND TopLevelWindow;
3266 CheckWindowName = WindowName.Buffer != 0;
3284 WindowMatches = !CheckWindowName ||
3287 ClassMatches = (ClassAtom == (
RTL_ATOM)0) ||
3290 if (WindowMatches && ClassMatches)
3310 TRACE(
"FindWindowEx: Not Desktop Parent!\n");
3314 if (Ret ==
NULL && DoMessageWnd)
3320 Ret =
IntFindWindow(MsgWindows, ChildAfter, ClassAtom, &WindowName);
3332 TRACE(
"Leave NtUserFindWindowEx, ret %p\n", Ret);
3415 TRACE(
"Enter NtUserGetAncestor\n");
3427 TRACE(
"Leave NtUserGetAncestor, ret=%p\n", Ret);
3449 INT fixedOwnerDrawHeight;
3462#define CBF_BUTTONDOWN 0x0002
3477 TRACE(
"Enter NtUserGetComboBoxInfo\n");
3512 NotSameppi = ppi != Wnd->
head.pti->ppi;
3541 TRACE(
"Leave NtUserGetComboBoxInfo, ret=%i\n", Ret);
3587 TRACE(
"Enter NtUserGetListBoxInfo\n");
3603 NotSameppi = ppi != Wnd->
head.pti->ppi;
3613 Ret =
descr->page_size;
3624 TRACE(
"Leave NtUserGetListBoxInfo, ret=%lu\n", Ret);
3651 TRACE(
"Enter NtUserSetParent\n");
3668 TRACE(
"Leave NtUserSetParent, ret=%p\n", Ret);
3717 PWND WndShell, WndListView;
3723 TRACE(
"Enter NtUserSetShellWindowEx\n");
3793 ti->
pDeskInfo->hShellWindow = hwndShell;
3795 ti->
pDeskInfo->spwndBkGnd = WndListView;
3807 TRACE(
"Leave NtUserSetShellWindowEx, ret=%i\n", Ret);
3876 ERR(
"NtUserSetWindowLong(): Index requires pointer size: %lu\n",
Index);
3887 Style.styleOld = OldValue;
3888 Style.styleNew = NewValue;
3895 WindowStation =
Window->head.pti->rpdesk->rpwinstaParent;
3899 Style.styleNew &= ~WS_EX_TOPMOST;
3919 Style.styleOld = OldValue;
3920 Style.styleNew = NewValue;
3933 Window->ExStyle &= ~WS_EX_WINDOWEDGE;
3940 ERR(
"IDMenu going null! %d\n",
Window->IDMenu);
3949 Window->state &= ~WNDS_HASMENU;
3952 ERR(
"IDMenu released 0x%p\n",pMenu);
4004 OldValue =
Window->dwUserData;
4005 Window->dwUserData = NewValue;
4009 ERR(
"NtUserSetWindowLong(): Unsupported index %lu\n",
Index);
4124 TRACE(
"Enter NtUserSetWindowWord\n");
4166 TRACE(
"Leave NtUserSetWindowWord, ret=%u\n", Ret);
4192#define GWLP_CONSOLE_LEADER_PID 0
4193#define GWLP_CONSOLE_LEADER_TID 4
4196 PWND pWnd, pwndActive;
4199 TRACE(
"Enter NtUserQueryWindow\n");
4260 if (pWnd->
head.pti->spwndDefaultIme)
4265 if (pWnd->
head.pti->spDefaultImc)
4276 ptiActive = pwndActive->
head.pti;
4285 TRACE(
"Leave NtUserQueryWindow, ret=%u\n",
Result);
4300 TRACE(
"Enter NtUserRegisterWindowMessage\n");
4303 if(MessageNameUnsafe ==
NULL)
4317 if (SafeMessageName.
Buffer)
4321 TRACE(
"Leave NtUserRegisterWindowMessage, ret=%u\n", Ret);
4336 TRACE(
"Enter NtUserSetWindowFNID\n");
4354 if (fnID < FNID_FIRST || fnID >
FNID_GHOST ||
4366 TRACE(
"Leave NtUserSetWindowFNID\n");
4460 TRACE(
"Enter NtUserDefSetText\n");
4462 if (WindowText !=
NULL)
4466 SafeText = ProbeForReadLargeString(WindowText);
4509 if (!Ret)
goto Exit;
4574 TRACE(
"Leave NtUserDefSetText, ret=%i\n", Ret);
4593 TRACE(
"Enter NtUserInternalGetWindowText\n");
4610 const WCHAR Terminator =
L'\0';
4639 TRACE(
"Leave NtUserInternalGetWindowText, ret=%i\n",
Result);
4657 TRACE(
"Enter ShowOwnedPopups Show: %s\n", (fShow ?
"TRUE" :
"FALSE"));
4665 while (win_array[
count])
4667 while (--
count >= 0)
4682 pWnd->
state &= ~WNDS_HIDDENPOPUP;
4701 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)
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
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
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 EXCEPTION_EXECUTE_HANDLER
#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
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)
#define STATUS_INVALID_HANDLE
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::@5110 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 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 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)
HWND APIENTRY NtUserGetAncestor(HWND hWnd, UINT Type)
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)
PWND FASTCALL UserGetAncestor(PWND Wnd, UINT Type)
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)
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 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_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