From 6d9378a1fd84b4e197056c3eb736a533616cfc15 Mon Sep 17 00:00:00 2001 From: Ged Murphy Date: Mon, 17 Dec 2007 09:40:48 +0000 Subject: [PATCH] - Add a new routine to NtUSerCallOneParam which returns newly created handles for icons and cursors - Fix the NtUserGetIconSize prototype svn path=/trunk/; revision=31289 --- .../win32/win32k/ntuser/cursoricon.c | 5 +---- reactos/subsystems/win32/win32k/ntuser/misc.c | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/reactos/subsystems/win32/win32k/ntuser/cursoricon.c b/reactos/subsystems/win32/win32k/ntuser/cursoricon.c index 5ac24725cdc..bba94ddace9 100644 --- a/reactos/subsystems/win32/win32k/ntuser/cursoricon.c +++ b/reactos/subsystems/win32/win32k/ntuser/cursoricon.c @@ -676,9 +676,6 @@ CLEANUP: } -/* for hints how the prototype might be, see - http://forum.grafika.cz/read.php?23,1816012,1816139,quote=1 - http://www.cyber-ta.org/releases/malware-analysis/public/SOURCES/b47155634ccb2c30630da7e3666d3d07/b47155634ccb2c30630da7e3666d3d07.trace.html#NtUserGetIconSize */ /* * @implemented */ @@ -686,7 +683,7 @@ BOOL NTAPI NtUserGetIconSize( HANDLE hCurIcon, - DWORD dwUnknown2, // Most of the time Zero. + UINT istepIfAniCur, PLONG plcx, // &size.cx PLONG plcy) // &size.cy { diff --git a/reactos/subsystems/win32/win32k/ntuser/misc.c b/reactos/subsystems/win32/win32k/ntuser/misc.c index 6d2a58b1aa5..3a3f038c937 100644 --- a/reactos/subsystems/win32/win32k/ntuser/misc.c +++ b/reactos/subsystems/win32/win32k/ntuser/misc.c @@ -353,6 +353,28 @@ NtUserCallOneParam( case ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO: RETURN( (DWORD)MsqSetMessageExtraInfo((LPARAM)Param)); + case ONEPARAM_ROUTINE_CREATECURICONHANDLE: + { + PCURICON_OBJECT CurIcon; + PWINSTATION_OBJECT WinSta; + + WinSta = IntGetWinStaObj(); + if(WinSta == NULL) + { + RETURN(0); + } + + if (!(CurIcon = IntCreateCurIconHandle(WinSta))) + { + SetLastWin32Error(ERROR_NOT_ENOUGH_MEMORY); + ObDereferenceObject(WinSta); + RETURN(0); + } + + ObDereferenceObject(WinSta); + RETURN((DWORD)CurIcon->Self); + } + case ONEPARAM_ROUTINE_GETCURSORPOSITION: { PWINSTATION_OBJECT WinSta;