28 TRACE(
"User32CallSendAsyncProcKernel()\n");
144 if (LargeString->Buffer)
155 DWORD dwMajorVersion = 3;
156 DWORD dwMinorVersion = 10;
166 if (dwMajorVersion == 1)
211 DbgPrint(
"[window] User32CreateWindowEx style %d, exstyle %d, parent %d\n", dwStyle, dwExStyle,
hWndParent);
215 TRACE(
"Module Version %x\n",dwFlagsVer);
219 TRACE(
"RegisterSystemControls\n");
227 plstrClassName = (
PVOID)lpClassName;
248 plstrClassName = &lstrClassName;
287 wceW.
cbSize =
sizeof(wceW);
295 wceA.
cbSize =
sizeof(wceA);
308 plstrClassVersion = plstrClassName;
316 plstrClassVersion = &lstrClassVersion;
337 if (!lpLibFileName)
break;
344 if (ClassFound)
continue;
398 TRACE(
"CreateWindowExA RegisterSystemControls\n");
411 if (!pWndParent)
return NULL;
415 WARN(
"WS_EX_MDICHILD, but parent %p is not MDIClient\n",
hWndParent);
438 WARN(
"WS_POPUP with MDIS_ALLCHILDSTYLES is not allowed\n");
457 TRACE(
"Restoring current maximized child %p\n", top_child);
524 ERR(
"CreateWindowExW RegisterSystemControls\n");
537 if (!pWndParent)
return NULL;
541 WARN(
"WS_EX_MDICHILD, but parent %p is not MDIClient\n",
hWndParent);
564 WARN(
"WS_POPUP with MDIS_ALLCHILDSTYLES is not allowed\n");
583 TRACE(
"Restoring current maximized child %p\n", top_child);
631 HWND hWndInsertAfter,
744 for (
i = 0;
i < dwCount;
i++ )
754 if (!(*lpfn)(pHwnd[
i],
lParam))
870 pucClassName = &ucClassName;
872 else if (lpszClass !=
NULL)
876 pucClassName = &ucClassName;
879 if (lpszWindow !=
NULL)
883 pucWindowName = &ucWindowName;
985 if (Ancestor !=
NULL)
1009 if (!Wnd)
return FALSE;
1012 lpRect->
left = lpRect->
top = 0;
1028 lpRect->
left = lpRect->
top = 0;
1075 PWND Wnd, WndParent;
1095 if (WndParent !=
NULL)
1177 if (FoundWnd !=
NULL)
1273 UINT cchFileNameMax)
1290 UINT cchFileNameMax)
1309 if (!Wnd)
return FALSE;
1316 lpRect->
left = lpRect->
top = 0;
1424 lpString[0] =
L'\0';
1454 if (!pWnd)
return Ret;
1456 ti = pWnd->
head.pti;
1486 PWND WndParent, DesktopWnd, Wnd;
1508 if (Wnd == WndParent)
1605 }
while (Wnd !=
NULL);
1669 (visible && !(
dwFlags & AW_HIDE)) ||
1670 (!visible && (
dwFlags & AW_HIDE)))
1701 POINT ptParentClientCoords)
1822 const UPDATELAYEREDWINDOWINFO *
info)
1846 DWORD dwContextHelpId)
1867 if (Ret == 0 && lpString)
1976 if (
flags & SW_SMOOTHSCROLL)
1978 FIXME(
"SW_SMOOTHSCROLL not supported.\n");
2006 retvalue = (
list[
i] != 0);
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)
VOID NTAPI RtlInitLargeUnicodeString(IN OUT PLARGE_UNICODE_STRING, IN PCWSTR, IN INT)
#define ERROR_INVALID_PARAMETER
static const WCHAR classW[]
HWND APIENTRY NtUserGetAncestor(HWND hWnd, UINT Type)
WINE_DEFAULT_DEBUG_CHANNEL(oleacc)
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
HWND WINAPI DECLSPEC_HOTPATCH CreateWindowExA(DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam)
BOOL WINAPI EnumThreadWindows(DWORD dwThreadId, WNDENUMPROC lpfn, LPARAM lParam)
VOID NTAPI RtlFreeLargeString(IN PLARGE_STRING LargeString)
#define QUERY_WINDOW_UNIQUE_THREAD_ID
#define QUERY_WINDOW_UNIQUE_PROCESS_ID
BOOL WINAPI GetClassInfoExW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _Out_ LPWNDCLASSEXW)
PWND FASTCALL ValidateHwndNoErr(HWND hWnd)
LPCWSTR FASTCALL ClassNameToVersion(const void *lpszClass, LPCWSTR lpszMenuName, LPCWSTR *plpLibFileName, HANDLE *pContext, BOOL bAnsi)
DWORD WINAPI GetWindowContextHelpId(HWND hwnd)
_In_ ULONG _In_ ULONG _In_ ULONG Length
int WINAPI InternalGetWindowText(HWND hWnd, LPWSTR lpString, int nMaxCount)
HWND WINAPI ChildWindowFromPoint(HWND hWndParent, POINT Point)
DWORD_PTR NTAPI NtUserGetThreadState(DWORD Routine)
_Must_inspect_result_ _Out_ LPSIZE psize
int WINAPI GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount)
#define STATUS_INFO_LENGTH_MISMATCH
UINT WINAPI GetWindowModuleFileNameA(HWND hwnd, LPSTR lpszFileName, UINT cchFileNameMax)
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
HWND WINAPI GetParent(HWND hWnd)
HDWP WINAPI DeferWindowPos(HDWP hWinPosInfo, HWND hWnd, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam)
EXTINLINE DWORD NtUserxGetWindowContextHelpId(HWND hwnd)
HMENU WINAPI LoadMenuA(_In_opt_ HINSTANCE, _In_ LPCSTR)
VOID UserGetWindowBorders(DWORD Style, DWORD ExStyle, SIZE *Size, BOOL WithClient)
#define QUERY_WINDOW_REAL_ID
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
BOOL NTAPI NtUserEndDeferWindowPosEx(HDWP WinPosInfo, BOOL bAsync)
BOOL FASTCALL TestWindowProcess(PWND)
HWND WINAPI GetTaskmanWindow(VOID)
#define ERROR_NOT_ENOUGH_MEMORY
DWORD_PTR NTAPI NtUserCallOneParam(DWORD_PTR Param, DWORD Routine)
IN PVOID IN PVOID IN USHORT IN USHORT Size
DWORD WINAPI GetLastError(VOID)
HWND NTAPI NtUserChildWindowFromPointEx(HWND Parent, LONG x, LONG y, UINT Flags)
GLint GLint GLint GLint GLint x
#define GetWindowLongPtrW
HDWP WINAPI BeginDeferWindowPos(int nNumWindows)
BOOL WINAPI IsWindowUnicode(HWND hWnd)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI AllowSetForegroundWindow(DWORD dwProcessId)
BOOL(CALLBACK * WNDENUMPROC)(HWND, LPARAM)
DWORD_PTR APIENTRY NtUserQueryWindow(HWND hWnd, DWORD Index)
DWORD WINAPI GetModuleFileNameA(HINSTANCE hModule, LPSTR lpFilename, DWORD nSize)
VOID WINAPI DisableProcessWindowsGhosting(VOID)
BOOL WINAPI IsZoomed(HWND hWnd)
HWND WINAPI SetProgmanWindow(HWND hWnd)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
struct _THREADINFO * GetW32ThreadInfo(VOID)
BOOL WINAPI OpenIcon(HWND hWnd)
UINT WINAPI GetWindowModuleFileNameW(HWND hwnd, LPWSTR lpszFileName, UINT cchFileNameMax)
BOOL WINAPI GetClientRect(HWND hWnd, LPRECT lpRect)
void MDI_CalcDefaultChildPos(HWND hwndClient, INT total, LPPOINT lpPos, INT delta, UINT *id)
HWND WINAPI ChildWindowFromPointEx(HWND hwndParent, POINT pt, UINT uFlags)
BOOL NTAPI NtUserUpdateLayeredWindow(HWND hwnd, HDC hdcDst, POINT *pptDst, SIZE *psize, HDC hdcSrc, POINT *pptSrc, COLORREF crKey, BLENDFUNCTION *pblend, DWORD dwFlags, RECT *prcDirty)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
HWND WINAPI SetActiveWindow(_In_ HWND)
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, LPDWORD lpdwProcessId)
HWND WINAPI GetDesktopWindow(VOID)
EXTINLINE BOOL NtUserxLockSetForegroundWindow(UINT uLockCode)
int WINAPI GetWindowTextLengthA(HWND hWnd)
BOOL WINAPI SetWindowContextHelpId(HWND hwnd, DWORD dwContextHelpId)
INT WINAPI ScrollWindowEx(HWND hWnd, int dx, int dy, CONST RECT *prcScroll, CONST RECT *prcClip, HRGN hrgnUpdate, LPRECT prcUpdate, UINT flags)
HWND WINAPI GetFocus(VOID)
BOOL WINAPI IsHungAppWindow(HWND hwnd)
HWND WINAPI RealChildWindowFromPoint(HWND hwndParent, POINT ptParentClientCoords)
_Out_opt_ int _Out_opt_ int * cy
BOOL WINAPI IsWindowVisible(HWND hWnd)
BOOL WINAPI DECLSPEC_HOTPATCH SetWindowTextA(HWND hWnd, LPCSTR lpString)
HWND WINAPI FindWindowExA(HWND hwndParent, HWND hwndChildAfter, LPCSTR lpszClass, LPCSTR lpszWindow)
BOOL WINAPI GetWindowRect(HWND hWnd, LPRECT lpRect)
HWND WINAPI GetWindow(HWND hWnd, UINT uCmd)
HWND WINAPI GetLastActivePopup(HWND hWnd)
static BOOL User32EnumWindows(HDESK hDesktop, HWND hWndparent, WNDENUMPROC lpfn, LPARAM lParam, DWORD dwThreadId, BOOL bChildren)
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
DWORD NTAPI NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect, const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags)
BOOL WINAPI LockSetForegroundWindow(UINT uLockCode)
VOID WINAPI SetLastErrorEx(DWORD dwErrCode, DWORD dwType)
HWND WINAPI GetAncestor(HWND hwnd, UINT gaFlags)
INT APIENTRY NtUserInternalGetWindowText(HWND hWnd, LPWSTR lpString, INT nMaxCount)
DWORD WINAPI GetCurrentThreadId(VOID)
HWND APIENTRY NtUserFindWindowEx(HWND hwndParent, HWND hwndChildAfter, PUNICODE_STRING ucClassName, PUNICODE_STRING ucWindowName, DWORD dwUnknown)
BOOL WINAPI GetProcessDefaultLayout(DWORD *pdwDefaultLayout)
BOOL WINAPI EnumChildWindows(HWND hWndParent, WNDENUMPROC lpEnumFunc, LPARAM lParam)
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
#define DECLSPEC_HOTPATCH
BOOL WINAPI SetForegroundWindow(HWND hWnd)
BOOL WINAPI SetProcessDefaultLayout(DWORD dwDefaultLayout)
BOOL WINAPI UpdateLayeredWindow(HWND hwnd, HDC hdcDst, POINT *pptDst, SIZE *psize, HDC hdcSrc, POINT *pptSrc, COLORREF crKey, BLENDFUNCTION *pbl, DWORD dwFlags)
NTSTATUS WINAPI User32CallSendAsyncProcForKernel(PVOID Arguments, ULONG ArgumentLength)
#define UserHMGetHandle(obj)
BOOL WINAPI CloseWindow(HWND hWnd)
BOOL WINAPI IsWindow(HWND hWnd)
BOOL NTAPI NtUserGetAltTabInfo(HWND hwnd, INT iItem, PALTTABINFO pati, LPWSTR pszItemText, UINT cchItemText, BOOL Ansi)
EXTINLINE BOOL NtUserxAllowSetForegroundWindow(DWORD dwProcessId)
#define IS_INTRESOURCE(i)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
BOOL WINAPI IsWindowEnabled(HWND hWnd)
VOID NTAPI RtlInitLargeAnsiString(IN OUT PLARGE_ANSI_STRING, IN PCSZ, IN INT)
#define NT_SUCCESS(StatCode)
#define MDIS_ALLCHILDSTYLES
#define EXCEPTION_EXECUTE_HANDLER
#define UlongToHandle(ul)
BOOL WINAPI IsWindowInDestroy(HWND hWnd)
EXTINLINE VOID NtUserxEnableProcessWindowGhosting(BOOL bEnable)
static const WCHAR titleW[]
int WINAPI GetSystemMetrics(_In_ int)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
HWND WINAPI User32CreateWindowEx(DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam, DWORD dwFlags)
HDWP NTAPI NtUserDeferWindowPos(HDWP WinPosInfo, HWND Wnd, HWND WndInsertAfter, int x, int y, int cx, int cy, UINT Flags)
BOOL WINAPI IsChild(HWND hWndParent, HWND hWnd)
BOOL WINAPI AnimateWindow(HWND hwnd, DWORD dwTime, DWORD dwFlags)
#define QUERY_WINDOW_ISHUNG
BOOL WINAPI ScrollWindow(HWND hWnd, int dx, int dy, CONST RECT *lpRect, CONST RECT *prcClip)
#define WNDS2_WIN50COMPAT
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
EXTINLINE VOID NtUserxSwitchToThisWindow(HWND hWnd, BOOL fAltTab)
_Use_decl_annotations_ NTSTATUS NTAPI RtlMultiByteToUnicodeN(_Out_ PWCH UnicodeString, _In_ ULONG UnicodeSize, _Out_opt_ PULONG ResultSize, _In_ PCCH MbString, _In_ ULONG MbSize)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HWND NTAPI NtUserRealChildWindowFromPoint(HWND Parent, LONG x, LONG y)
EXTINLINE HDWP NtUserxBeginDeferWindowPos(INT nNumWindows)
BOOL WINAPI UpdateLayeredWindowIndirect(HWND hwnd, const UPDATELAYEREDWINDOWINFO *info)
#define WS_EX_SETANSICREATOR
HWND WINAPI GetProgmanWindow(VOID)
EXTINLINE BOOL NtUserxSetForegroundWindow(HWND hWnd)
HWND WINAPI DECLSPEC_HOTPATCH CreateWindowExW(DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam)
BOOL WINAPI GetClassInfoExA(_In_opt_ HINSTANCE, _In_ LPCSTR, _Out_ LPWNDCLASSEXA)
FORCEINLINE struct _TEB * NtCurrentTeb(VOID)
HWND WINAPI SetTaskmanWindow(HWND hWnd)
EXTINLINE BOOL NtUserxSetWindowContextHelpId(HWND hWnd, DWORD_PTR dwContextHelpId)
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
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
HWND WINAPI FindWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName)
BOOL WINAPI ShowOwnedPopups(HWND hWnd, BOOL fShow)
struct _WND * spwndLastActive
BOOL WINAPI AnyPopup(VOID)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI IsIconic(HWND hWnd)
BOOL NTAPI NtUserSetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags)
NTSTATUS NTAPI NtUserBuildHwndList(HDESK hDesktop, HWND hwndParent, BOOLEAN bChildren, ULONG dwThreadId, ULONG cHwnd, HWND *phwndList, ULONG *pcHwndNeeded)
#define WNDS2_WIN31COMPAT
static PVOID FASTCALL DesktopPtrToUser(PVOID ptr)
#define SW_SCROLLCHILDREN
DWORD WINAPI GetRealWindowOwner(HWND hwnd)
GLint GLint GLint GLint GLint GLint y
#define MultiByteToWideChar
EXTINLINE BOOL NtUserxShowOwnedPopups(HWND hWnd, BOOL fShow)
HWND * WIN_ListChildren(HWND hWndparent)
PWND FASTCALL GetThreadDesktopWnd(VOID)
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
struct _WND * spwndParent
#define WS_OVERLAPPEDWINDOW
BOOL WINAPI RegisterSystemControls(VOID)
FORCEINLINE VOID RtlInitLargeString(OUT PLARGE_STRING plstr, LPCVOID psz, BOOL bUnicode)
HWND WINAPI FindWindowExW(HWND hwndParent, HWND hwndChildAfter, LPCWSTR lpszClass, LPCWSTR lpszWindow)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
EXTINLINE HWND NtUserxSetProgmanWindow(HWND hWnd)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
char * cleanup(char *str)
#define _SEH2_EXCEPT(...)
DWORD RegisterDefaultClasses
BOOL WINAPI GetAltTabInfoA(HWND hwnd, int iItem, PALTTABINFO pati, LPSTR pszItemText, UINT cchItemText)
BOOL WINAPI BringWindowToTop(HWND hWnd)
#define WNDS2_WIN40COMPAT
DWORD FASTCALL RtlGetExpWinVer(HMODULE hModule)
HWND WINAPI GetTopWindow(HWND hWnd)
BOOL WINAPI EnumDesktopWindows(HDESK hDesktop, WNDENUMPROC lpfn, LPARAM lParam)
int WINAPI GetWindowTextLengthW(HWND hWnd)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
HWND WINAPI GetActiveWindow(void)
VOID WINAPI SwitchToThisWindow(HWND hwnd, BOOL fAltTab)
#define HeapFree(x, y, z)
BOOL WINAPI DECLSPEC_HOTPATCH SetWindowTextW(HWND hWnd, LPCWSTR lpString)
struct _SENDASYNCPROC_CALLBACK_ARGUMENTS * PSENDASYNCPROC_CALLBACK_ARGUMENTS
BOOL WINAPI DECLSPEC_HOTPATCH GetWindowInfo(HWND hWnd, PWINDOWINFO pwi)
EXTINLINE HWND NtUserxSetTaskmanWindow(HWND hWnd)
BOOL FASTCALL VersionRegisterClass(PCWSTR, LPCWSTR, HANDLE, HMODULE *)
BOOL WINAPI GetAltTabInfoW(HWND hwnd, int iItem, PALTTABINFO pati, LPWSTR pszItemText, UINT cchItemText)
BOOL WINAPI EndDeferWindowPos(HDWP hWinPosInfo)
#define ValidateHwnd(hwnd)
HWND WINAPI FindWindowA(LPCSTR lpClassName, LPCSTR lpWindowName)
#define ERROR_CANNOT_FIND_WND_CLASS