Alexandre Julliard : user32: Prefer loading color cursors in LoadImage.

Alexandre Julliard julliard at winehq.org
Tue Feb 12 13:58:12 CST 2013


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Feb 12 13:56:41 2013 +0100

user32: Prefer loading color cursors in LoadImage.

---

 dlls/user32/cursoricon.c |   18 ++++++++----------
 1 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c
index 5b21101..df11f56 100644
--- a/dlls/user32/cursoricon.c
+++ b/dlls/user32/cursoricon.c
@@ -2619,6 +2619,8 @@ HANDLE WINAPI LoadImageA( HINSTANCE hinst, LPCSTR name, UINT type,
 HANDLE WINAPI LoadImageW( HINSTANCE hinst, LPCWSTR name, UINT type,
                 INT desiredx, INT desiredy, UINT loadflags )
 {
+    int depth;
+
     TRACE_(resource)("(%p,%s,%d,%d,%d,0x%08x)\n",
                      hinst,debugstr_w(name),type,desiredx,desiredy,loadflags);
 
@@ -2628,18 +2630,14 @@ HANDLE WINAPI LoadImageW( HINSTANCE hinst, LPCWSTR name, UINT type,
         return BITMAP_Load( hinst, name, desiredx, desiredy, loadflags );
 
     case IMAGE_ICON:
-        if (!screen_dc) screen_dc = CreateDCW( DISPLAYW, NULL, NULL, NULL );
-        if (screen_dc)
+    case IMAGE_CURSOR:
+        depth = 1;
+        if (!(loadflags & LR_MONOCHROME))
         {
-            return CURSORICON_Load(hinst, name, desiredx, desiredy,
-                                   GetDeviceCaps(screen_dc, BITSPIXEL),
-                                   FALSE, loadflags);
+            if (!screen_dc) screen_dc = CreateDCW( DISPLAYW, NULL, NULL, NULL );
+            if (screen_dc) depth = GetDeviceCaps( screen_dc, BITSPIXEL );
         }
-        break;
-
-    case IMAGE_CURSOR:
-        return CURSORICON_Load(hinst, name, desiredx, desiredy,
-                               1, TRUE, loadflags);
+        return CURSORICON_Load(hinst, name, desiredx, desiredy, depth, (type == IMAGE_CURSOR), loadflags);
     }
     return 0;
 }




More information about the wine-cvs mailing list