Author: rharabien
Date: Mon Mar 28 20:52:27 2011
New Revision: 51184

URL: http://svn.reactos.org/svn/reactos?rev=51184&view=rev
Log:
[USER32]
Fix a bug causing "Attempted to lock object, wrong reuse counter" messages when 
CMD was started in LiveCD. Once got desktop HDC was used in different threads. 
When thread, which created handle terminated, DC handle was removed and next 
calls to CreateIcon* API was using invalid hDC.

Modified:
    trunk/reactos/dll/win32/user32/windows/cursoricon.c

Modified: trunk/reactos/dll/win32/user32/windows/cursoricon.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/cursoricon.c?rev=51184&r1=51183&r2=51184&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/cursoricon.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/windows/cursoricon.c [iso-8859-1] Mon Mar 28 
20:52:27 2011
@@ -458,16 +458,10 @@
     void *color_bits, *mask_bits;
     BOOL ret = FALSE;
     HDC hdc = 0;
-       static HDC hScreenDC = 0;
 
     if (!(info = HeapAlloc( GetProcessHeap(), 0, max( size, FIELD_OFFSET( 
BITMAPINFO, bmiColors[2] )))))
         return FALSE;
-       if(!hScreenDC)
-       {
-               hScreenDC = GetDC(0);
-               if(!hScreenDC) goto done;
-       }
-    if (!(hdc = CreateCompatibleDC(hScreenDC))) goto done;
+    if (!(hdc = CreateCompatibleDC(NULL))) goto done;
 
     memcpy( info, bmi, size );
     info->bmiHeader.biHeight /= 2;
@@ -491,8 +485,8 @@
     else
     {
         if (!(*mask = CreateBitmap( width, height, 1, 1, NULL ))) goto done;
-        if (!(*color = CreateBitmap( width, height, GetDeviceCaps(hScreenDC, 
PLANES),
-                                     GetDeviceCaps(hScreenDC, BITSPIXEL), NULL 
)))
+        if (!(*color = CreateBitmap( width, height, GetDeviceCaps(hdc, PLANES),
+                                     GetDeviceCaps(hdc, BITSPIXEL), NULL )))
         {
             DeleteObject( *mask );
             goto done;


Reply via email to