From 7e8228e0c7eda9c9b67e4af5f5981b65d313e982 Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Fri, 22 Aug 2003 20:50:44 +0000 Subject: [PATCH] fixed GetIconInfo() svn path=/trunk/; revision=5771 --- reactos/lib/user32/windows/icon.c | 38 +++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/reactos/lib/user32/windows/icon.c b/reactos/lib/user32/windows/icon.c index bce2ac6d7bc..1db57831e6c 100644 --- a/reactos/lib/user32/windows/icon.c +++ b/reactos/lib/user32/windows/icon.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: icon.c,v 1.9 2003/08/20 14:08:19 weiden Exp $ +/* $Id: icon.c,v 1.10 2003/08/22 20:50:44 weiden Exp $ * * PROJECT: ReactOS user32.dll * FILE: lib/user32/windows/icon.c @@ -112,7 +112,11 @@ CopyIcon( HICON hIcon) { ICONINFO IconInfo; - GetIconInfo(hIcon, &IconInfo); + NtUserGetIconInfo(hIcon, &IconInfo.fIcon, + &IconInfo.xHotspot, + &IconInfo.yHotspot, + &IconInfo.hbmMask, + &IconInfo.hbmColor); return CreateIconIndirect(&IconInfo); } @@ -310,7 +314,11 @@ DrawIconEx( BOOL result = FALSE, DoOffscreen; HBITMAP hB_off = 0, hOld = 0; - if (!GetIconInfo(hIcon, &IconInfo)) + if (!NtUserGetIconInfo(hIcon, &IconInfo.fIcon, + &IconInfo.xHotspot, + &IconInfo.yHotspot, + &IconInfo.hbmMask, + &IconInfo.hbmColor)) return FALSE; NtGdiGetObject(IconInfo.hbmColor, sizeof(BITMAP), &XORBitmap); @@ -442,12 +450,24 @@ GetIconInfo( HICON hIcon, PICONINFO piconinfo) { - return NtUserGetIconInfo(hIcon, - &piconinfo->fIcon, - &piconinfo->xHotspot, - &piconinfo->yHotspot, - &piconinfo->hbmMask, - &piconinfo->hbmColor); + ICONINFO IconInfo; + WINBOOL res; + + if(!piconinfo) + { + SetLastError(ERROR_NOACCESS); + return FALSE; + } + + RtlCopyMemory(&IconInfo, piconinfo, sizeof(ICONINFO)); + res = NtUserGetIconInfo(hIcon, + &piconinfo->fIcon, + &piconinfo->xHotspot, + &piconinfo->yHotspot, + &piconinfo->hbmMask, + &piconinfo->hbmColor); + RtlCopyMemory(piconinfo, &IconInfo, sizeof(ICONINFO)); + return res; }