Alexandre Julliard : user32: Don't assume global handles in CopyIcon.

Alexandre Julliard julliard at winehq.org
Wed Dec 23 10:04:09 CST 2009


Module: wine
Branch: master
Commit: 0f511f3c8e3105b00953648a8a072bfaada94ea3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0f511f3c8e3105b00953648a8a072bfaada94ea3

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Dec 22 17:13:49 2009 +0100

user32: Don't assume global handles in CopyIcon.

---

 dlls/user32/cursoricon.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c
index 90f8356..2b2151a 100644
--- a/dlls/user32/cursoricon.c
+++ b/dlls/user32/cursoricon.c
@@ -1451,11 +1451,12 @@ HICON WINAPI CopyIcon( HICON hIcon )
 {
     CURSORICONINFO *ptrOld, *ptrNew;
     int size;
-    HICON16 hOld = HICON_16(hIcon);
     HICON hNew;
 
     if (!(ptrOld = wow_handlers.get_icon_ptr( hIcon ))) return 0;
-    size = GlobalSize16( hOld );
+    size = sizeof(CURSORICONINFO);
+    size += ptrOld->nHeight * get_bitmap_width_bytes( ptrOld->nWidth, 1 );  /* and bitmap */
+    size += ptrOld->nHeight * ptrOld->nWidthBytes;  /* xor bitmap */
     hNew = wow_handlers.alloc_icon_handle( size );
     ptrNew = wow_handlers.get_icon_ptr( hNew );
     memcpy( ptrNew, ptrOld, size );




More information about the wine-cvs mailing list