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/include/gdi.h b/include/gdi.h
index 6cd7a95..91b5fd1 100644
--- a/include/gdi.h
+++ b/include/gdi.h
@@ -193,7 +193,7 @@
     INT      (*pEndDoc)(DC*);
     INT      (*pEndPage)(DC*);
     BOOL     (*pEndPath)(DC*);
-    BOOL     (*pEnumDeviceFonts)(DC*,LPLOGFONT16,DEVICEFONTENUMPROC,LPARAM);
+    BOOL     (*pEnumDeviceFonts)(HDC,LPLOGFONT16,DEVICEFONTENUMPROC,LPARAM);
     INT      (*pEscape)(DC*,INT,INT,SEGPTR,SEGPTR);
     INT      (*pExcludeClipRect)(DC*,INT,INT,INT,INT);
     INT      (*pExtDeviceMode)(LPSTR,HWND,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,
@@ -444,30 +444,12 @@
 
   /* GDI local heap */
 
-extern WORD GDI_HeapSel;
-
-#define GDI_HEAP_ALLOC(size) \
-            LOCAL_Alloc( GDI_HeapSel, LMEM_FIXED, (size) )
-#define GDI_HEAP_ALLOC_MOVEABLE(size) \
-            LOCAL_Alloc( GDI_HeapSel, LMEM_MOVEABLE, (size) )
-#define GDI_HEAP_REALLOC(handle,size) \
-            LOCAL_ReAlloc( GDI_HeapSel, (handle), (size), LMEM_FIXED )
-#define GDI_HEAP_FREE(handle) \
-            LOCAL_Free( GDI_HeapSel, (handle) )
-
-#define GDI_HEAP_LOCK(handle) \
-            LOCAL_Lock( GDI_HeapSel, (handle) )
-#define GDI_HEAP_LOCK_SEGPTR(handle) \
-            LOCAL_LockSegptr( GDI_HeapSel, (handle) )
-#define GDI_HEAP_UNLOCK(handle) \
-    ((((HGDIOBJ16)(handle) >= FIRST_STOCK_HANDLE) && \
-      ((HGDIOBJ16)(handle)<=LAST_STOCK_HANDLE)) ? \
-      0 : LOCAL_Unlock( GDI_HeapSel, (handle) ))
-
 extern BOOL GDI_Init(void);
-extern HGDIOBJ GDI_AllocObject( WORD, WORD );
-extern BOOL GDI_FreeObject( HGDIOBJ );
-extern GDIOBJHDR * GDI_GetObjPtr( HGDIOBJ, WORD );
+extern void *GDI_AllocObject( WORD, WORD, HGDIOBJ * );
+extern void *GDI_ReallocObject( WORD, HGDIOBJ, void *obj );
+extern BOOL GDI_FreeObject( HGDIOBJ, void *obj );
+extern void *GDI_GetObjPtr( HGDIOBJ, WORD );
+extern void GDI_ReleaseObj( HGDIOBJ );
 
 extern BOOL DRIVER_RegisterDriver( LPCSTR name, const DC_FUNCTIONS *funcs );
 extern const DC_FUNCTIONS *DRIVER_FindDriver( LPCSTR name );