[USER32] Implement IsServerSideWindow (undocumented)

Implement IsServerSideWindow function in user32. It checks whether a window has a window procedure that resides in kernel mode and returns a boolean condition based on the appropriate internal window state flag (WNDS_SERVERSIDEWINDOWPROC).
This function is not officially documented by Microsoft, but fortunately it has unofficial documentation at http://undoc.airesoft.co.uk/user32.dll/IsServerSideWindow.php.
Required and used internally by uxtheme.dll from Windows XP/2003/Vista/7/etc. The log spams with it a lot, when using uxtheme.dll from Windows in ReactOS.
CORE-19946
This commit is contained in:
Oleg Dubinskiy 2024-12-23 22:37:23 +01:00
parent 3af55a1539
commit 7909f7d776
2 changed files with 31 additions and 9 deletions

View file

@ -432,15 +432,6 @@ WORD WINAPI InitializeWin32EntryTable(UCHAR* EntryTablePlus0x1000)
return FALSE;
}
/*
* @unimplemented
*/
BOOL WINAPI IsServerSideWindow(HWND wnd)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/

View file

@ -1512,6 +1512,37 @@ IsIconic(HWND hWnd)
}
/**
* @brief
* IsServerSideWindow
*
* Checks whether a window has a window procedure that resides in kernel mode.
*
* @param[in] hWnd
* A handle to the window to be checked.
*
* @return
* TRUE if the window has a window procedure that resides in kernel mode,
* FALSE otherwise.
*
* @remarks
* Undocumented, see http://undoc.airesoft.co.uk/user32.dll/IsServerSideWindow.php
* (unofficial documentation).
*/
BOOL
WINAPI
IsServerSideWindow(
_In_ HWND hWnd)
{
PWND Wnd = ValidateHwnd(hWnd);
if (Wnd != NULL)
return (Wnd->state & WNDS_SERVERSIDEWINDOWPROC) != 0;
return FALSE;
}
/*
* @implemented
*/