[ros-diffs] [pborobia] 23856: * Add check for GDI object in SetClipboardData

pborobia at svn.reactos.org pborobia at svn.reactos.org
Fri Sep 1 07:38:43 CEST 2006


Author: pborobia
Date: Fri Sep  1 09:38:42 2006
New Revision: 23856

URL: http://svn.reactos.org/svn/reactos?rev=23856&view=rev
Log:
* Add check for GDI object in SetClipboardData

Modified:
    branches/clipboard/dll/win32/user32/windows/clipboard.c

Modified: branches/clipboard/dll/win32/user32/windows/clipboard.c
URL: http://svn.reactos.org/svn/reactos/branches/clipboard/dll/win32/user32/windows/clipboard.c?rev=23856&r1=23855&r2=23856&view=diff
==============================================================================
--- branches/clipboard/dll/win32/user32/windows/clipboard.c (original)
+++ branches/clipboard/dll/win32/user32/windows/clipboard.c Fri Sep  1 09:38:42 2006
@@ -312,10 +312,22 @@
     
 	if (uFormat == CF_BITMAP)
 	{
-	    /*FIXME: check if hMem is GDI handle
-	    GlobalLock(hMem) fails && GetObject(hMem, 0, NULL) > 0
-	    */
-	    return NtUserSetClipboardData(uFormat, hMem, 0); 
+	    pMem = GlobalLock(hMem);
+	    if (pMem)
+	    {
+	        /* not a  GDI handle */
+	        GlobalUnlock(hMem);
+	        return ret;
+	    }
+	    else
+	    {
+	        /* check if this GDI handle is a HBITMAP */
+	        /* GetObject for HBITMAP not implemented in ReactOS */
+    	    //if (GetObject(hMem, 0, NULL) == sifeof(BITMAP))
+    	    //{
+    	        return NtUserSetClipboardData(CF_BITMAP, hMem, 0); 
+    	    //}
+    	}
 	}
 
     size = GlobalSize(hMem);
@@ -323,15 +335,14 @@
 	
 	if ((pMem) && (size)) 
 	{
-    	DPRINT1("[1]");
     	size = GlobalSize(hMem);
     	ret = NtUserSetClipboardData(uFormat, pMem, size); 
-        //sholud i unlock hMmem?
+        //sholud i unlock hMem?
         GlobalUnlock(hMem);
     }
     else
     {
-        DPRINT1("SetClipboardData fail\n");
+        DPRINT1("SetClipboardData failed\n");
     }
             
     return ret;




More information about the Ros-diffs mailing list