Commit 399dfc25 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

win32u: Use syscall interface for cursor icon functions.

parent b20f3985
......@@ -1136,17 +1136,14 @@ static struct unix_funcs unix_funcs =
NtGdiUnrealizeObject,
NtGdiUpdateColors,
NtGdiWidenPath,
NtUserClipCursor,
NtUserCreateCaret,
NtUserCreateWindowEx,
NtUserDeferWindowPosAndBand,
NtUserDestroyCursor,
NtUserDestroyMenu,
NtUserDestroyWindow,
NtUserDisableThreadIme,
NtUserDragDetect,
NtUserDrawCaptionTemp,
NtUserDrawIconEx,
NtUserDrawMenuBarTemp,
NtUserEnableMenuItem,
NtUserEnableScrollBar,
......@@ -1155,7 +1152,6 @@ static struct unix_funcs unix_funcs =
NtUserExcludeUpdateRgn,
NtUserFlashWindowEx,
NtUserGetClassInfoEx,
NtUserGetIconInfo,
NtUserGetMenuBarInfo,
NtUserGetScrollBarInfo,
NtUserGetSystemMenu,
......@@ -1173,8 +1169,6 @@ static struct unix_funcs unix_funcs =
NtUserSetClassLong,
NtUserSetClassLongPtr,
NtUserSetClassWord,
NtUserSetCursor,
NtUserSetCursorIconData,
NtUserSetFocus,
NtUserSetInternalWindowPos,
NtUserSetLayeredWindowAttributes,
......@@ -1189,7 +1183,6 @@ static struct unix_funcs unix_funcs =
NtUserSetWindowRgn,
NtUserSetWindowWord,
NtUserShowCaret,
NtUserShowCursor,
NtUserShowScrollBar,
NtUserShowWindow,
NtUserShowWindowAsync,
......
......@@ -117,6 +117,7 @@ static void * const syscalls[] =
NtUserChangeDisplaySettings,
NtUserCheckMenuItem,
NtUserChildWindowFromPointEx,
NtUserClipCursor,
NtUserCloseClipboard,
NtUserCloseDesktop,
NtUserCloseWindowStation,
......@@ -128,8 +129,10 @@ static void * const syscalls[] =
NtUserCreateWindowStation,
NtUserDeleteMenu,
NtUserDestroyAcceleratorTable,
NtUserDestroyCursor,
NtUserDestroyInputContext,
NtUserDispatchMessage,
NtUserDrawIconEx,
NtUserEmptyClipboard,
NtUserEndMenu,
NtUserEnumDisplayDevices,
......@@ -157,6 +160,7 @@ static void * const syscalls[] =
NtUserGetDpiForMonitor,
NtUserGetForegroundWindow,
NtUserGetGUIThreadInfo,
NtUserGetIconInfo,
NtUserGetIconSize,
NtUserGetKeyNameText,
NtUserGetKeyState,
......@@ -217,6 +221,8 @@ static void * const syscalls[] =
NtUserSendInput,
NtUserSetClipboardData,
NtUserSetClipboardViewer,
NtUserSetCursor,
NtUserSetCursorIconData,
NtUserSetCursorPos,
NtUserSetKeyboardState,
NtUserSetMenuContextHelpId,
......@@ -231,6 +237,7 @@ static void * const syscalls[] =
NtUserSetTimer,
NtUserSetWinEventHook,
NtUserSetWindowsHookEx,
NtUserShowCursor,
NtUserThunkedMenuInfo,
NtUserThunkedMenuItemInfo,
NtUserToUnicodeEx,
......
......@@ -792,7 +792,7 @@
@ stub NtUserCheckWindowThreadDesktop
@ stdcall -syscall NtUserChildWindowFromPointEx(long long long long)
@ stub NtUserClearForeground
@ stdcall NtUserClipCursor(ptr)
@ stdcall -syscall NtUserClipCursor(ptr)
@ stdcall -syscall NtUserCloseClipboard()
@ stdcall -syscall NtUserCloseDesktop(long)
@ stdcall -syscall NtUserCloseWindowStation(long)
......@@ -829,7 +829,7 @@
@ stdcall -syscall NtUserDestroyAcceleratorTable(long)
@ stub NtUserDestroyActivationGroup
@ stub NtUserDestroyActivationObject
@ stdcall NtUserDestroyCursor(long long)
@ stdcall -syscall NtUserDestroyCursor(long long)
@ stub NtUserDestroyDCompositionHwndTarget
@ stdcall -syscall NtUserDestroyInputContext(long)
@ stdcall NtUserDestroyMenu(long)
......@@ -850,7 +850,7 @@
@ stub NtUserDrawAnimatedRects
@ stub NtUserDrawCaption
@ stdcall NtUserDrawCaptionTemp(long long ptr long long wstr long)
@ stdcall NtUserDrawIconEx(long long long long long long long long long)
@ stdcall -syscall NtUserDrawIconEx(long long long long long long long long long)
@ stdcall NtUserDrawMenuBarTemp(long long ptr long long)
@ stub NtUserDwmGetRemoteSessionOcclusionEvent
@ stub NtUserDwmGetRemoteSessionOcclusionState
......@@ -934,7 +934,7 @@
@ stub NtUserGetGuiResources
@ stub NtUserGetHDevName
@ stub NtUserGetHimetricScaleFactorFromPixelLocation
@ stdcall NtUserGetIconInfo(long ptr ptr ptr ptr long)
@ stdcall -syscall NtUserGetIconInfo(long ptr ptr ptr ptr long)
@ stdcall -syscall NtUserGetIconSize(long long ptr ptr)
@ stub NtUserGetImeHotKey
@ stub NtUserGetImeInfoEx
......@@ -1178,9 +1178,9 @@
@ stdcall -syscall NtUserSetClipboardViewer(long)
@ stub NtUserSetCoreWindow
@ stub NtUserSetCoreWindowPartner
@ stdcall NtUserSetCursor(long)
@ stdcall -syscall NtUserSetCursor(long)
@ stub NtUserSetCursorContents
@ stdcall NtUserSetCursorIconData(long ptr ptr ptr)
@ stdcall -syscall NtUserSetCursorIconData(long ptr ptr ptr)
@ stdcall -syscall NtUserSetCursorPos(long long)
@ stub NtUserSetDesktopColorTransform
@ stub NtUserSetDesktopVisualInputSink
......@@ -1258,7 +1258,7 @@
@ stub NtUserSetWindowsHookAW
@ stdcall -syscall NtUserSetWindowsHookEx(ptr ptr long long ptr long)
@ stdcall NtUserShowCaret(long)
@ stdcall NtUserShowCursor(long)
@ stdcall -syscall NtUserShowCursor(long)
@ stdcall NtUserShowScrollBar(long long long)
@ stub NtUserShowSystemCursor
@ stdcall NtUserShowWindow(long long)
......
......@@ -186,7 +186,6 @@ struct unix_funcs
BOOL (WINAPI *pNtGdiUnrealizeObject)( HGDIOBJ obj );
BOOL (WINAPI *pNtGdiUpdateColors)( HDC hdc );
BOOL (WINAPI *pNtGdiWidenPath)( HDC hdc );
BOOL (WINAPI *pNtUserClipCursor)( const RECT *rect );
BOOL (WINAPI *pNtUserCreateCaret)( HWND hwnd, HBITMAP bitmap, int width, int height );
HWND (WINAPI *pNtUserCreateWindowEx)( DWORD ex_style, UNICODE_STRING *class_name,
UNICODE_STRING *version, UNICODE_STRING *window_name,
......@@ -196,15 +195,12 @@ struct unix_funcs
HDWP (WINAPI *pNtUserDeferWindowPosAndBand)( HDWP hdwp, HWND hwnd, HWND after,
INT x, INT y, INT cx, INT cy,
UINT flags, UINT unk1, UINT unk2 );
BOOL (WINAPI *pNtUserDestroyCursor)( HCURSOR cursor, ULONG arg );
BOOL (WINAPI *pNtUserDestroyMenu)( HMENU handle );
BOOL (WINAPI *pNtUserDestroyWindow)( HWND hwnd );
BOOL (WINAPI *pNtUserDisableThreadIme)( DWORD thread_id );
BOOL (WINAPI *pNtUserDragDetect)( HWND hwnd, int x, int y );
BOOL (WINAPI *pNtUserDrawCaptionTemp)( HWND hwnd, HDC hdc, const RECT *rect, HFONT font,
HICON icon, const WCHAR *str, UINT flags );
BOOL (WINAPI *pNtUserDrawIconEx)( HDC hdc, INT x0, INT y0, HICON icon, INT width,
INT height, UINT istep, HBRUSH hbr, UINT flags );
DWORD (WINAPI *pNtUserDrawMenuBarTemp)( HWND hwnd, HDC hdc, RECT *rect, HMENU handle, HFONT font );
BOOL (WINAPI *pNtUserEnableMenuItem)( HMENU handle, UINT id, UINT flags );
BOOL (WINAPI *pNtUserEnableScrollBar)( HWND hwnd, UINT bar, UINT flags );
......@@ -214,8 +210,6 @@ struct unix_funcs
BOOL (WINAPI *pNtUserFlashWindowEx)( FLASHWINFO *info );
ATOM (WINAPI *pNtUserGetClassInfoEx)( HINSTANCE instance, UNICODE_STRING *name, WNDCLASSEXW *wc,
struct client_menu_name *menu_name, BOOL ansi );
BOOL (WINAPI *pNtUserGetIconInfo)( HICON icon, ICONINFO *info, UNICODE_STRING *module,
UNICODE_STRING *res_name, DWORD *bpp, LONG unk );
BOOL (WINAPI *pNtUserGetMenuBarInfo)( HWND hwnd, LONG id, LONG item, MENUBARINFO *info );
BOOL (WINAPI *pNtUserGetScrollBarInfo)( HWND hwnd, LONG id, SCROLLBARINFO *info );
HMENU (WINAPI *pNtUserGetSystemMenu)( HWND hwnd, BOOL revert );
......@@ -237,9 +231,6 @@ struct unix_funcs
DWORD (WINAPI *pNtUserSetClassLong)( HWND hwnd, INT offset, LONG newval, BOOL ansi );
ULONG_PTR (WINAPI *pNtUserSetClassLongPtr)( HWND hwnd, INT offset, LONG_PTR newval, BOOL ansi );
WORD (WINAPI *pNtUserSetClassWord)( HWND hwnd, INT offset, WORD newval );
HCURSOR (WINAPI *pNtUserSetCursor)( HCURSOR cursor );
BOOL (WINAPI *pNtUserSetCursorIconData)( HCURSOR cursor, UNICODE_STRING *module,
UNICODE_STRING *res_name, struct cursoricon_desc *desc );
HWND (WINAPI *pNtUserSetFocus)( HWND hwnd );
void (WINAPI *pNtUserSetInternalWindowPos)( HWND hwnd, UINT cmd, RECT *rect, POINT *pt );
BOOL (WINAPI *pNtUserSetLayeredWindowAttributes)( HWND hwnd, COLORREF key, BYTE alpha, DWORD flags );
......@@ -254,7 +245,6 @@ struct unix_funcs
int (WINAPI *pNtUserSetWindowRgn)( HWND hwnd, HRGN hrgn, BOOL redraw );
WORD (WINAPI *pNtUserSetWindowWord)( HWND hwnd, INT offset, WORD newval );
BOOL (WINAPI *pNtUserShowCaret)( HWND hwnd );
INT (WINAPI *pNtUserShowCursor)( BOOL show );
BOOL (WINAPI *pNtUserShowScrollBar)( HWND hwnd, INT bar, BOOL show );
BOOL (WINAPI *pNtUserShowWindow)( HWND hwnd, INT cmd );
BOOL (WINAPI *pNtUserShowWindowAsync)( HWND hwnd, INT cmd );
......
......@@ -725,12 +725,6 @@ NTSTATUS WINAPI NtGdiDdDDISetVidPnSourceOwner( const D3DKMT_SETVIDPNSOURCEOWNER
return unix_funcs->pNtGdiDdDDISetVidPnSourceOwner( desc );
}
BOOL WINAPI NtUserClipCursor( const RECT *rect )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtUserClipCursor( rect );
}
BOOL WINAPI NtUserCreateCaret( HWND hwnd, HBITMAP bitmap, int width, int height )
{
if (!unix_funcs) return 0;
......@@ -758,12 +752,6 @@ HDWP WINAPI NtUserDeferWindowPosAndBand( HDWP hdwp, HWND hwnd, HWND after,
flags, unk1, unk2 );
}
BOOL WINAPI NtUserDestroyCursor( HCURSOR cursor, ULONG arg )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtUserDestroyCursor( cursor, arg );
}
BOOL WINAPI NtUserDestroyMenu( HMENU handle )
{
if (!unix_funcs) return FALSE;
......@@ -795,13 +783,6 @@ BOOL WINAPI NtUserDrawCaptionTemp( HWND hwnd, HDC hdc, const RECT *rect, HFONT f
return unix_funcs->pNtUserDrawCaptionTemp( hwnd, hdc, rect, font, icon, str, flags );
}
BOOL WINAPI NtUserDrawIconEx( HDC hdc, INT x0, INT y0, HICON icon, INT width,
INT height, UINT istep, HBRUSH hbr, UINT flags )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtUserDrawIconEx( hdc, x0, y0, icon, width, height, istep, hbr, flags );
}
DWORD WINAPI NtUserDrawMenuBarTemp( HWND hwnd, HDC hdc, RECT *rect, HMENU handle, HFONT font )
{
if (!unix_funcs) return 0;
......@@ -845,13 +826,6 @@ ATOM WINAPI NtUserGetClassInfoEx( HINSTANCE instance, UNICODE_STRING *name, WNDC
return unix_funcs->pNtUserGetClassInfoEx( instance, name, wc, menu_name, ansi );
}
BOOL WINAPI NtUserGetIconInfo( HICON icon, ICONINFO *info, UNICODE_STRING *module,
UNICODE_STRING *res_name, DWORD *bpp, LONG unk )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtUserGetIconInfo( icon, info, module, res_name, bpp, unk );
}
BOOL WINAPI NtUserGetMenuBarInfo( HWND hwnd, LONG id, LONG item, MENUBARINFO *info )
{
if (!unix_funcs) return 0;
......@@ -939,12 +913,6 @@ HWND WINAPI NtUserSetCapture( HWND hwnd )
return unix_funcs->pNtUserSetCapture( hwnd );
}
HCURSOR WINAPI NtUserSetCursor( HCURSOR cursor )
{
if (!unix_funcs) return 0;
return unix_funcs->pNtUserSetCursor( cursor );
}
DWORD WINAPI NtUserSetClassLong( HWND hwnd, INT offset, LONG newval, BOOL ansi )
{
if (!unix_funcs) return 0;
......@@ -963,13 +931,6 @@ WORD WINAPI NtUserSetClassWord( HWND hwnd, INT offset, WORD newval )
return unix_funcs->pNtUserSetClassWord( hwnd, offset, newval );
}
BOOL WINAPI NtUserSetCursorIconData( HCURSOR cursor, UNICODE_STRING *module, UNICODE_STRING *res_name,
struct cursoricon_desc *desc )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtUserSetCursorIconData( cursor, module, res_name, desc );
}
HWND WINAPI NtUserSetFocus( HWND hwnd )
{
if (!unix_funcs) return FALSE;
......@@ -1054,12 +1015,6 @@ BOOL WINAPI NtUserShowCaret( HWND hwnd )
return unix_funcs->pNtUserShowCaret( hwnd );
}
INT WINAPI NtUserShowCursor( BOOL show )
{
if (!unix_funcs) return 0;
return unix_funcs->pNtUserShowCursor( show );
}
BOOL WINAPI NtUserShowScrollBar( HWND hwnd, INT bar, BOOL show )
{
if (!unix_funcs) return FALSE;
......
......@@ -104,6 +104,7 @@
SYSCALL_ENTRY( NtUserChangeDisplaySettings ) \
SYSCALL_ENTRY( NtUserCheckMenuItem ) \
SYSCALL_ENTRY( NtUserChildWindowFromPointEx ) \
SYSCALL_ENTRY( NtUserClipCursor ) \
SYSCALL_ENTRY( NtUserCloseClipboard ) \
SYSCALL_ENTRY( NtUserCloseDesktop ) \
SYSCALL_ENTRY( NtUserCloseWindowStation ) \
......@@ -115,8 +116,10 @@
SYSCALL_ENTRY( NtUserCreateWindowStation ) \
SYSCALL_ENTRY( NtUserDeleteMenu ) \
SYSCALL_ENTRY( NtUserDestroyAcceleratorTable ) \
SYSCALL_ENTRY( NtUserDestroyCursor ) \
SYSCALL_ENTRY( NtUserDestroyInputContext ) \
SYSCALL_ENTRY( NtUserDispatchMessage ) \
SYSCALL_ENTRY( NtUserDrawIconEx ) \
SYSCALL_ENTRY( NtUserEmptyClipboard ) \
SYSCALL_ENTRY( NtUserEndMenu ) \
SYSCALL_ENTRY( NtUserEnumDisplayDevices ) \
......@@ -144,6 +147,7 @@
SYSCALL_ENTRY( NtUserGetDpiForMonitor ) \
SYSCALL_ENTRY( NtUserGetForegroundWindow ) \
SYSCALL_ENTRY( NtUserGetGUIThreadInfo ) \
SYSCALL_ENTRY( NtUserGetIconInfo ) \
SYSCALL_ENTRY( NtUserGetIconSize ) \
SYSCALL_ENTRY( NtUserGetKeyNameText ) \
SYSCALL_ENTRY( NtUserGetKeyState ) \
......@@ -204,6 +208,8 @@
SYSCALL_ENTRY( NtUserSendInput ) \
SYSCALL_ENTRY( NtUserSetClipboardData ) \
SYSCALL_ENTRY( NtUserSetClipboardViewer ) \
SYSCALL_ENTRY( NtUserSetCursor ) \
SYSCALL_ENTRY( NtUserSetCursorIconData ) \
SYSCALL_ENTRY( NtUserSetCursorPos ) \
SYSCALL_ENTRY( NtUserSetKeyboardState ) \
SYSCALL_ENTRY( NtUserSetMenuContextHelpId ) \
......@@ -218,6 +224,7 @@
SYSCALL_ENTRY( NtUserSetTimer ) \
SYSCALL_ENTRY( NtUserSetWinEventHook ) \
SYSCALL_ENTRY( NtUserSetWindowsHookEx ) \
SYSCALL_ENTRY( NtUserShowCursor ) \
SYSCALL_ENTRY( NtUserThunkedMenuInfo ) \
SYSCALL_ENTRY( NtUserThunkedMenuItemInfo ) \
SYSCALL_ENTRY( NtUserToUnicodeEx ) \
......
......@@ -327,6 +327,13 @@ NTSTATUS WINAPI wow64_NtUserChildWindowFromPointEx( UINT *args )
return HandleToUlong( NtUserChildWindowFromPointEx( parent, x, y, flags ));
}
NTSTATUS WINAPI wow64_NtUserClipCursor( UINT *args )
{
const RECT *rect = get_ptr( &args );
return NtUserClipCursor( rect );
}
NTSTATUS WINAPI wow64_NtUserCloseClipboard( UINT *args )
{
return NtUserCloseClipboard();
......@@ -426,6 +433,14 @@ NTSTATUS WINAPI wow64_NtUserDestroyAcceleratorTable( UINT *args )
return NtUserDestroyAcceleratorTable( handle );
}
NTSTATUS WINAPI wow64_NtUserDestroyCursor( UINT *args )
{
HCURSOR cursor = get_handle( &args );
ULONG arg = get_ulong( &args );
return NtUserDestroyCursor( cursor, arg );
}
NTSTATUS WINAPI wow64_NtUserDestroyInputContext( UINT *args )
{
HIMC handle = get_handle( &args );
......@@ -441,6 +456,21 @@ NTSTATUS WINAPI wow64_NtUserDispatchMessage( UINT *args )
return NtUserDispatchMessage( msg_32to64( &msg, msg32 ));
}
NTSTATUS WINAPI wow64_NtUserDrawIconEx( UINT *args )
{
HDC hdc = get_handle( &args );
int x0 = get_ulong( &args );
int y0 = get_ulong( &args );
HICON icon = get_handle( &args );
int width = get_ulong( &args );
int height = get_ulong( &args );
UINT istep = get_ulong( &args );
HBRUSH hbr = get_handle( &args );
UINT flags = get_ulong( &args );
return NtUserDrawIconEx( hdc, x0, y0, icon, width, height, istep, hbr, flags );
}
NTSTATUS WINAPI wow64_NtUserEmptyClipboard( UINT *args )
{
return NtUserEmptyClipboard();
......@@ -724,6 +754,39 @@ NTSTATUS WINAPI wow64_NtUserGetGUIThreadInfo( UINT *args )
return TRUE;
}
NTSTATUS WINAPI wow64_NtUserGetIconInfo( UINT *args )
{
HICON icon = get_handle( &args );
struct
{
BOOL fIcon;
DWORD xHotspot;
DWORD yHotspot;
UINT32 hbmMask;
UINT32 hbmColor;
} *info32 = get_ptr( &args );
UNICODE_STRING32 *module32 = get_ptr( &args );
UNICODE_STRING32 *res_name32 = get_ptr( &args );
DWORD *bpp = get_ptr( &args );
LONG unk = get_ulong( &args );
ICONINFO info;
UNICODE_STRING module, res_name;
if (!NtUserGetIconInfo( icon, &info, unicode_str_32to64( &module, module32 ),
unicode_str_32to64( &res_name, res_name32 ), bpp, unk ))
return FALSE;
info32->fIcon = info.fIcon;
info32->xHotspot = info.xHotspot;
info32->yHotspot = info.yHotspot;
info32->hbmMask = HandleToUlong( info.hbmMask );
info32->hbmColor = HandleToUlong( info.hbmColor );
if (module32) module32->Length = module.Length;
if (res_name32) res_name32->Length = res_name.Length;
return TRUE;
}
NTSTATUS WINAPI wow64_NtUserGetIconSize( UINT *args )
{
HICON handle = get_handle( &args );
......@@ -1506,6 +1569,24 @@ NTSTATUS WINAPI wow64_NtUserSetClipboardViewer( UINT *args )
return HandleToUlong( NtUserSetClipboardViewer( hwnd ));
}
NTSTATUS WINAPI wow64_NtUserSetCursor( UINT *args )
{
HCURSOR cursor = get_handle( &args );
return HandleToUlong( NtUserSetCursor( cursor ));
}
NTSTATUS WINAPI wow64_NtUserSetCursorIconData( UINT *args )
{
HCURSOR cursor = get_handle( &args );
UNICODE_STRING32 *module32 = get_ptr( &args );
UNICODE_STRING32 *res_name32 = get_ptr( &args );
void *desc = get_ptr( &args );
FIXME( "%p %p %p %p\n", cursor, module32, res_name32, desc );
return 0;
}
NTSTATUS WINAPI wow64_NtUserSetCursorPos( UINT *args )
{
INT x = get_ulong( &args );
......@@ -1643,6 +1724,13 @@ NTSTATUS WINAPI wow64_NtUserSetWindowsHookEx( UINT *args )
return HandleToUlong( ret );
}
NTSTATUS WINAPI wow64_NtUserShowCursor( UINT *args )
{
BOOL show = get_ulong( &args );
return NtUserShowCursor( show );
}
NTSTATUS WINAPI wow64_NtUserThunkedMenuInfo( UINT *args )
{
HMENU menu = get_handle( &args );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment