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)
1727 if(pMonitor ==
NULL)
1781 TRACE(
"Strange use of CW_USEDEFAULT in nHeight\n");
1817 BOOL bUnicodeWindow;
1863 pdeskCreated ? pdeskCreated : pti->
rpdesk,
1874 TRACE(
"Created window object with handle %p\n",
hWnd);
1879 TRACE(
"CreateWindow setting desktop.\n");
1925 pWnd->
head.pti->cWindows++;
2010 if ( !bUnicodeWindow &&
2026 pWnd->
state &= ~WNDS_ANSIWINDOWPROC;
2042 ERR(
"Warning: Unable to create CallProc for edit control. Control may not operate correctly! hwnd %p\n",
hWnd);
2088 pWnd->
ExStyle &= ~WS_EX_WINDOWEDGE;
2116 if (hMenu)
IntSetMenu(pWnd, hMenu, &MenuChanged);
2123 if ( ParentWindow &&
2124 ParentWindow != ParentWindow->
head.
rpdesk->spwndMessage &&
2125 ParentWindow != ParentWindow->
head.
rpdesk->pDeskInfo->spwnd )
2164 ERR(
"IntCreateWindow Allocation Error.\n");
2188 POINT MaxSize, MaxPos, MinTrack, MaxTrack;
2202 ERR(
"Thread is not attached to a desktop! Cannot create window (%wZ)\n", ClassName);
2205 WinSta = pti->
rpdesk->rpwinstaParent;
2216 ERR(
"Failed to find class %wZ\n", ClassName);
2237 ERR(
"Cannot create a child window (%wZ) without a parent\n", ClassName);
2257 ERR(
"Got invalid parent window handle for %wZ\n", ClassName);
2260 else if (hWndOwner && !OwnerWindow)
2262 ERR(
"Got invalid owner window handle for %wZ\n", ClassName);
2263 ParentWindow =
NULL;
2272 ERR(
"an owned window must be created as top-level\n");
2279 OwnerWindow = OwnerWindow->spwndParent;
2301 ERR(
"IntCreateWindow(%wZ) failed\n", ClassName);
2322 if (!pCsw || !pCbtCreate)
2324 ERR(
"UserHeapAlloc() failed!\n");
2330 ERR(
"IntMsgCreateStructW() failed!\n");
2334 pCbtCreate->
lpcs = pCsw;
2341 ERR(
"WH_CBT HCBT_CREATEWND hook failed! 0x%x\n",
Result);
2349 hwndInsertAfter = pCbtCreate->hwndInsertAfter;
2356 Cs->
x += ParentWindow->rcClient.left;
2357 Cs->
y += ParentWindow->rcClient.top;
2368 if (
Size.cx > MaxTrack.
x)
Size.cx = MaxTrack.
x;
2369 if (
Size.cy > MaxTrack.
y)
Size.cy = MaxTrack.
y;
2370 if (
Size.cx < MinTrack.
x)
Size.cx = MinTrack.
x;
2371 if (
Size.cy < MinTrack.
y)
Size.cy = MinTrack.
y;
2374 Window->rcWindow.left = Cs->
x;
2388 if (ParentWindow !=
NULL)
2393 Window->rcWindow.right = ParentWindow->rcClient.right - (
Window->rcWindow.left - ParentWindow->rcClient.left);
2402 ERR(
"Window 0x%p has been linked too early!\n",
Window);
2415 if (pti != ParentWindow->head.pti)
2427 ERR(
"co_UserCreateWindowEx(%wZ): NCCREATE message failed\n", ClassName);
2432 if (ParentWindow !=
NULL)
2471 MaxPos.
x =
Window->rcWindow.left;
2472 MaxPos.
y =
Window->rcWindow.top;
2480 MaxPos.
y -
Window->rcWindow.top);
2487 ERR(
"co_UserCreateWindowEx(%wZ): WM_CREATE message failed\n", ClassName);
2578 TRACE(
"co_UserCreateWindowEx(%wZ): Created window %p\n", ClassName,
hWnd);
2584 TRACE(
"co_UserCreateWindowEx(): Error Created window!\n");
2623 lstrTemp = *plstrUnsafe;
2632 if (lstrTemp.
Length != 0)
2657 plstrSafe->Buffer = pvBuffer;
2658 plstrSafe->Length = lstrTemp.
Length;
2659 plstrSafe->MaximumLength = lstrTemp.
Length;
2705 ERR(
"NtUserCreateWindowEx: Got an invalid menu handle!\n");
2715 ERR(
"NtUserCreateWindowEx: failed to capture plstrWindowName\n");
2720 plstrWindowName = &lstrWindowName;
2727 ustrClassName.
Length = 0;
2736 ERR(
"NtUserCreateWindowEx: failed to capture plstrClassName\n");
2753 ustrClsVersion.
Length = 0;
2762 ERR(
"NtUserCreateWindowEx: failed to capture plstrClsVersion\n");
2796 ERR(
"co_UserCreateWindowEx failed!\n");
2803 if (lstrWindowName.
Buffer)
2807 if (lstrClassName.
Buffer)
2811 if (lstrClsVersion.
Buffer)
2831 for (phWnd =
List; *phWnd; ++phWnd)
2848 ERR(
"IntWndBelongsToThread(0x%p) is FALSE, ignoring.\n", pWnd);
2871 TRACE(
"Tried to destroy a window twice\n");
2878 TRACE(
"co_UserDestroyWindow(Window = 0x%p, hWnd = 0x%p)\n",
Window,
hWnd);
2881 if (
Window->head.pti != ti)
2896 ERR(
"Destroy Window WH_CBT Call Hook return!\n");
2939 if ((pwndTemp =
Window->spwndOwner))
2960 if (
Window->head.pti->MessageQueue->spwndActive ==
Window)
2961 Window->head.pti->MessageQueue->spwndActive =
NULL;
2962 if (
Window->head.pti->MessageQueue->spwndFocus ==
Window)
2963 Window->head.pti->MessageQueue->spwndFocus =
NULL;
2964 if (
Window->head.pti->MessageQueue->spwndActivePrev ==
Window)
2965 Window->head.pti->MessageQueue->spwndActivePrev =
NULL;
2966 if (
Window->head.pti->MessageQueue->spwndCapture ==
Window)
2967 Window->head.pti->MessageQueue->spwndCapture =
NULL;
2977 ERR(
"Destroying the ShellWindow!\n");
3046 TRACE(
"Enter NtUserDestroyWindow\n");
3057 TRACE(
"Leave NtUserDestroyWindow, ret=%u\n",
ret);
3069 BOOL CheckWindowName;
3076 CheckWindowName = WindowName->
Buffer != 0;
3100 if (!ClassAtom ||
Child->pcls->atomNVClassName == ClassAtom)
3106 if(!CheckWindowName ||
3107 (
Child->strName.Length < 0xFFFF &&
3147 HWND hwndChildAfter,
3158 TRACE(
"Enter NtUserFindWindowEx\n");
3161 if (ucClassName !=
NULL || ucWindowName !=
NULL)
3165 if (ucClassName !=
NULL)
3168 if (ClassName.
Length != 0)
3180 if (!IntGetAtomFromStringOrAtom(&ClassName,
3188 if (ucWindowName !=
NULL)
3191 if (WindowName.Length != 0)
3206 if (ucClassName !=
NULL)
3227 DoMessageWnd =
TRUE;
3250 PWND TopLevelWindow;
3269 CheckWindowName = WindowName.Buffer != 0;
3287 WindowMatches = !CheckWindowName ||
3290 ClassMatches = (ClassAtom == (
RTL_ATOM)0) ||
3293 if (WindowMatches && ClassMatches)
3313 TRACE(
"FindWindowEx: Not Desktop Parent!\n");
3317 if (Ret ==
NULL && DoMessageWnd)
3323 Ret =
IntFindWindow(MsgWindows, ChildAfter, ClassAtom, &WindowName);
3335 TRACE(
"Leave NtUserFindWindowEx, ret %p\n", Ret);
3418 TRACE(
"Enter NtUserGetAncestor\n");
3430 TRACE(
"Leave NtUserGetAncestor, ret=%p\n", Ret);
3452 INT fixedOwnerDrawHeight;
3465#define CBF_BUTTONDOWN 0x0002
3480 TRACE(
"Enter NtUserGetComboBoxInfo\n");
3515 NotSameppi = ppi != Wnd->
head.pti->ppi;
3544 TRACE(
"Leave NtUserGetComboBoxInfo, ret=%i\n", Ret);
3590 TRACE(
"Enter NtUserGetListBoxInfo\n");
3606 NotSameppi = ppi != Wnd->
head.pti->ppi;
3616 Ret =
descr->page_size;
3627 TRACE(
"Leave NtUserGetListBoxInfo, ret=%lu\n", Ret);
3654 TRACE(
"Enter NtUserSetParent\n");
3671 TRACE(
"Leave NtUserSetParent, ret=%p\n", Ret);
3720 PWND WndShell, WndListView;
3726 TRACE(
"Enter NtUserSetShellWindowEx\n");
3796 ti->
pDeskInfo->hShellWindow = hwndShell;
3798 ti->
pDeskInfo->spwndBkGnd = WndListView;
3810 TRACE(
"Leave NtUserSetShellWindowEx, ret=%i\n", Ret);
3881 ERR(
"NtUserSetWindowLong(): Index requires pointer size: %lu\n",
Index);
3892 Style.styleOld = OldValue;
3893 Style.styleNew = NewValue;
3900 WindowStation =
Window->head.pti->rpdesk->rpwinstaParent;
3904 Style.styleNew &= ~WS_EX_TOPMOST;
3924 Style.styleOld = OldValue;
3925 Style.styleNew = NewValue;
3938 Window->ExStyle &= ~WS_EX_WINDOWEDGE;
3945 ERR(
"IDMenu going null! %d\n",
Window->IDMenu);
3954 Window->state &= ~WNDS_HASMENU;
3957 ERR(
"IDMenu released 0x%p\n",pMenu);
4009 OldValue =
Window->dwUserData;
4010 Window->dwUserData = NewValue;
4014 ERR(
"NtUserSetWindowLong(): Unsupported index %lu\n",
Index);
4129 TRACE(
"Enter NtUserSetWindowWord\n");
4171 TRACE(
"Leave NtUserSetWindowWord, ret=%u\n", Ret);
4197#define GWLP_CONSOLE_LEADER_PID 0
4198#define GWLP_CONSOLE_LEADER_TID 4
4201 PWND pWnd, pwndActive;
4204 TRACE(
"Enter NtUserQueryWindow\n");
4265 if (pWnd->
head.pti->spwndDefaultIme)
4270 if (pWnd->
head.pti->spDefaultImc)
4281 ptiActive = pwndActive->
head.pti;
4290 TRACE(
"Leave NtUserQueryWindow, ret=%u\n",
Result);
4305 TRACE(
"Enter NtUserRegisterWindowMessage\n");
4308 if(MessageNameUnsafe ==
NULL)
4322 if (SafeMessageName.
Buffer)
4326 TRACE(
"Leave NtUserRegisterWindowMessage, ret=%u\n", Ret);
4341 TRACE(
"Enter NtUserSetWindowFNID\n");
4359 if (fnID < FNID_FIRST || fnID >
FNID_GHOST ||
4371 TRACE(
"Leave NtUserSetWindowFNID\n");
4465 TRACE(
"Enter NtUserDefSetText\n");
4467 if (WindowText !=
NULL)
4471 SafeText = ProbeForReadLargeString(WindowText);
4514 if (!Ret)
goto Exit;
4579 TRACE(
"Leave NtUserDefSetText, ret=%i\n", Ret);
4598 TRACE(
"Enter NtUserInternalGetWindowText\n");
4615 const WCHAR Terminator =
L'\0';
4644 TRACE(
"Leave NtUserInternalGetWindowText, ret=%i\n",
Result);
4662 TRACE(
"Enter ShowOwnedPopups Show: %s\n", (fShow ?
"TRUE" :
"FALSE"));
4670 while (win_array[
count])
4672 while (--
count >= 0)
4687 pWnd->
state &= ~WNDS_HIDDENPOPUP;
4706 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
LARGE_UNICODE_STRING strName
struct _WND::@5275 InternalPos
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 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_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