Authors: Alexandre Julliard <julliard@codeweavers.com> (for Corel), Albert den Haan <albertd@corel.com>
Added syslevel locking for GDI operations.
Propagate the changes through the graphics code.

diff --git a/objects/enhmetafile.c b/objects/enhmetafile.c
index 6828837..60000a0 100644
--- a/objects/enhmetafile.c
+++ b/objects/enhmetafile.c
@@ -35,13 +35,16 @@
 HENHMETAFILE EMF_Create_HENHMETAFILE(ENHMETAHEADER *emh, HFILE hFile, HANDLE
 				     hMapping )
 {
-    HENHMETAFILE hmf = GDI_AllocObject( sizeof(ENHMETAFILEOBJ),
-					ENHMETAFILE_MAGIC );
-    ENHMETAFILEOBJ *metaObj = (ENHMETAFILEOBJ *)GDI_HEAP_LOCK( hmf );
+    HENHMETAFILE hmf = 0;
+    ENHMETAFILEOBJ *metaObj = GDI_AllocObject( sizeof(ENHMETAFILEOBJ),
+                                               ENHMETAFILE_MAGIC, &hmf );
+    if (metaObj)
+    {
     metaObj->emh = emh;
     metaObj->hFile = hFile;
     metaObj->hMapping = hMapping;
-    GDI_HEAP_UNLOCK( hmf );
+        GDI_ReleaseObj( hmf );
+    }
     return hmf;
 }
 
@@ -59,7 +62,7 @@
 	CloseHandle( metaObj->hFile );
     } else
         HeapFree( GetProcessHeap(), 0, metaObj->emh );
-    return GDI_FreeObject( hmf );
+    return GDI_FreeObject( hmf, metaObj );
 }
 
 /******************************************************************
@@ -81,9 +84,9 @@
  *
  * Releases ENHMETAHEADER associated with HENHMETAFILE
  */
-static BOOL EMF_ReleaseEnhMetaHeader( HENHMETAFILE hmf )
+static void EMF_ReleaseEnhMetaHeader( HENHMETAFILE hmf )
 {
-    return GDI_HEAP_UNLOCK( hmf );
+    GDI_ReleaseObj( hmf );
 }
 
 /*****************************************************************************