Removed a few dependencies on GDI internals from USER dll.

diff --git a/windows/cursoricon.c b/windows/cursoricon.c
index e7b2374..0293578 100644
--- a/windows/cursoricon.c
+++ b/windows/cursoricon.c
@@ -40,8 +40,6 @@
 #include "color.h"
 #include "bitmap.h"
 #include "cursoricon.h"
-#include "dc.h"
-#include "gdi.h"
 #include "global.h"
 #include "module.h"
 #include "debugtools.h"
@@ -429,7 +427,7 @@
 {
     int sizeAnd, sizeXor;
     HBITMAP hAndBits = 0, hXorBits = 0; /* error condition for later */
-    BITMAPOBJ *bmpXor, *bmpAnd;
+    BITMAP bmpXor, bmpAnd;
     POINT16 hotspot;
     BITMAPINFO *bmi;
     HDC hdc;
@@ -583,10 +581,10 @@
     }
 
     /* Now create the CURSORICONINFO structure */
-    bmpXor = (BITMAPOBJ *) GDI_GetObjPtr( hXorBits, BITMAP_MAGIC );
-    bmpAnd = (BITMAPOBJ *) GDI_GetObjPtr( hAndBits, BITMAP_MAGIC );
-    sizeXor = bmpXor->bitmap.bmHeight * bmpXor->bitmap.bmWidthBytes;
-    sizeAnd = bmpAnd->bitmap.bmHeight * bmpAnd->bitmap.bmWidthBytes;
+    GetObjectA( hXorBits, sizeof(bmpXor), &bmpXor );
+    GetObjectA( hAndBits, sizeof(bmpAnd), &bmpAnd );
+    sizeXor = bmpXor.bmHeight * bmpXor.bmWidthBytes;
+    sizeAnd = bmpAnd.bmHeight * bmpAnd.bmWidthBytes;
 
     if (hObj) hObj = GlobalReAlloc16( hObj, 
 		     sizeof(CURSORICONINFO) + sizeXor + sizeAnd, GMEM_MOVEABLE );
@@ -602,11 +600,11 @@
 	info = (CURSORICONINFO *)GlobalLock16( hObj );
 	info->ptHotSpot.x   = hotspot.x;
 	info->ptHotSpot.y   = hotspot.y;
-	info->nWidth        = bmpXor->bitmap.bmWidth;
-	info->nHeight       = bmpXor->bitmap.bmHeight;
-	info->nWidthBytes   = bmpXor->bitmap.bmWidthBytes;
-	info->bPlanes       = bmpXor->bitmap.bmPlanes;
-	info->bBitsPerPixel = bmpXor->bitmap.bmBitsPixel;
+	info->nWidth        = bmpXor.bmWidth;
+	info->nHeight       = bmpXor.bmHeight;
+	info->nWidthBytes   = bmpXor.bmWidthBytes;
+	info->bPlanes       = bmpXor.bmPlanes;
+	info->bBitsPerPixel = bmpXor.bmBitsPixel;
 
 	/* Transfer the bitmap bits to the CURSORICONINFO structure */
 
@@ -693,7 +691,6 @@
     else if ( !hInstance )  /* Load OEM cursor/icon */
     {
         WORD resid;
-        HDC hdc;
 
         if ( HIWORD(name) )
         {
@@ -710,14 +707,7 @@
             }
         }
         else resid = LOWORD(name);
-	hdc = CreateDCA( "DISPLAY", NULL, NULL, NULL );
-	if (hdc) {
-	    DC *dc = DC_GetDCPtr( hdc );
-	    if (dc->funcs->pLoadOEMResource)
-	        h = dc->funcs->pLoadOEMResource( resid, fCursor ? OEM_CURSOR : OEM_ICON );
-	    GDI_HEAP_UNLOCK( hdc );
-	    DeleteDC(  hdc );
-	}
+        h = USER_Driver->pLoadOEMResource( resid, fCursor ? OEM_CURSOR : OEM_ICON );
     }
 
     else  /* Load from resource */
@@ -1819,16 +1809,17 @@
 /**********************************************************************
  *          CreateIconIndirect		(USER32.78)
  */
-HICON WINAPI CreateIconIndirect(LPICONINFO iconinfo) {
-    BITMAPOBJ *bmpXor,*bmpAnd;
+HICON WINAPI CreateIconIndirect(LPICONINFO iconinfo)
+{
+    BITMAP bmpXor,bmpAnd;
     HICON hObj;
     int	sizeXor,sizeAnd;
 
-    bmpXor = (BITMAPOBJ *) GDI_GetObjPtr( iconinfo->hbmColor, BITMAP_MAGIC );
-    bmpAnd = (BITMAPOBJ *) GDI_GetObjPtr( iconinfo->hbmMask, BITMAP_MAGIC );
+    GetObjectA( iconinfo->hbmColor, sizeof(bmpXor), &bmpXor );
+    GetObjectA( iconinfo->hbmMask, sizeof(bmpAnd), &bmpAnd );
 
-    sizeXor = bmpXor->bitmap.bmHeight * bmpXor->bitmap.bmWidthBytes;
-    sizeAnd = bmpAnd->bitmap.bmHeight * bmpAnd->bitmap.bmWidthBytes;
+    sizeXor = bmpXor.bmHeight * bmpXor.bmWidthBytes;
+    sizeAnd = bmpAnd.bmHeight * bmpAnd.bmWidthBytes;
 
     hObj = GlobalAlloc16( GMEM_MOVEABLE, 
 		     sizeof(CURSORICONINFO) + sizeXor + sizeAnd );
@@ -1850,11 +1841,11 @@
 	  info->ptHotSpot.y   = iconinfo->yHotspot;
 	}
 
-	info->nWidth        = bmpXor->bitmap.bmWidth;
-	info->nHeight       = bmpXor->bitmap.bmHeight;
-	info->nWidthBytes   = bmpXor->bitmap.bmWidthBytes;
-	info->bPlanes       = bmpXor->bitmap.bmPlanes;
-	info->bBitsPerPixel = bmpXor->bitmap.bmBitsPixel;
+	info->nWidth        = bmpXor.bmWidth;
+	info->nHeight       = bmpXor.bmHeight;
+	info->nWidthBytes   = bmpXor.bmWidthBytes;
+	info->bPlanes       = bmpXor.bmPlanes;
+	info->bBitsPerPixel = bmpXor.bmBitsPixel;
 
 	/* Transfer the bitmap bits to the CURSORICONINFO structure */
 
@@ -2104,18 +2095,8 @@
     if (!(loadflags & LR_LOADFROMFILE)) {
       if (!instance)  /* OEM bitmap */
       {
-          HDC hdc;
-	  DC *dc;
-
 	  if (HIWORD((int)name)) return 0;
-	  hdc = CreateDCA( "DISPLAY", NULL, NULL, NULL );
-	  dc = DC_GetDCPtr( hdc );
-	  if(dc->funcs->pLoadOEMResource)
-	      hbitmap = dc->funcs->pLoadOEMResource( LOWORD((int)name), 
-						     OEM_BITMAP );
-	  GDI_HEAP_UNLOCK( hdc );
-	  DeleteDC( hdc );
-	  return hbitmap;
+          return USER_Driver->pLoadOEMResource( LOWORD((int)name), OEM_BITMAP );
       }
 
       if (!(hRsrc = FindResourceW( instance, name, RT_BITMAPW ))) return 0;