Alexandre Julliard : gdi32: Reimplemented IsGDIObject16 and moved it to gdi16.c.

Alexandre Julliard julliard at winehq.org
Tue Feb 19 08:05:11 CST 2008


Module: wine
Branch: master
Commit: 1fdae2b2a5b75ca8f7c64bda8f973280107c46ba
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1fdae2b2a5b75ca8f7c64bda8f973280107c46ba

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Feb 18 17:26:31 2008 +0100

gdi32: Reimplemented IsGDIObject16 and moved it to gdi16.c.

---

 dlls/gdi32/gdi16.c  |   33 +++++++++++++++++++++++++++++++++
 dlls/gdi32/gdiobj.c |   20 --------------------
 2 files changed, 33 insertions(+), 20 deletions(-)

diff --git a/dlls/gdi32/gdi16.c b/dlls/gdi32/gdi16.c
index b0cea2e..8d7875b 100644
--- a/dlls/gdi32/gdi16.c
+++ b/dlls/gdi32/gdi16.c
@@ -2357,6 +2357,39 @@ void WINAPI SetObjectOwner16( HGDIOBJ16 handle, HANDLE16 owner )
 
 
 /***********************************************************************
+ *           IsGDIObject    (GDI.462)
+ *
+ * returns type of object if valid (W95 system programming secrets p. 264-5)
+ */
+BOOL16 WINAPI IsGDIObject16( HGDIOBJ16 handle16 )
+{
+    static const BYTE type_map[] =
+    {
+        0,  /* bad */
+        1,  /* OBJ_PEN */
+        2,  /* OBJ_BRUSH */
+        7,  /* OBJ_DC */
+        9,  /* OBJ_METADC */
+        4,  /* OBJ_PAL */
+        3,  /* OBJ_FONT */
+        5,  /* OBJ_BITMAP */
+        6,  /* OBJ_REGION */
+        10, /* OBJ_METAFILE */
+        7,  /* OBJ_MEMDC */
+        0,  /* OBJ_EXTPEN */
+        9,  /* OBJ_ENHMETADC */
+        12, /* OBJ_ENHMETAFILE */
+        0   /* OBJ_COLORSPACE */
+    };
+
+    UINT type = GetObjectType( HGDIOBJ_32( handle16 ));
+
+    if (type >= sizeof(type_map)/sizeof(type_map[0])) return 0;
+    return type_map[type];
+}
+
+
+/***********************************************************************
  *           RectVisible    (GDI.465)
  *           RectVisibleOld (GDI.104)
  */
diff --git a/dlls/gdi32/gdiobj.c b/dlls/gdi32/gdiobj.c
index e2c9533..560d519 100644
--- a/dlls/gdi32/gdiobj.c
+++ b/dlls/gdi32/gdiobj.c
@@ -1257,26 +1257,6 @@ INT WINAPI EnumObjects( HDC hdc, INT nObjType,
 
 
 /***********************************************************************
- *           IsGDIObject    (GDI.462)
- *
- * returns type of object if valid (W95 system programming secrets p. 264-5)
- */
-BOOL16 WINAPI IsGDIObject16( HGDIOBJ16 handle16 )
-{
-    UINT16 magic = 0;
-    HGDIOBJ handle = HGDIOBJ_32( handle16 );
-
-    GDIOBJHDR *object = GDI_GetObjPtr( handle, MAGIC_DONTCARE );
-    if (object)
-    {
-        magic = GDIMAGIC(object->wMagic) - FIRST_MAGIC + 1;
-        GDI_ReleaseObj( handle );
-    }
-    return magic;
-}
-
-
-/***********************************************************************
  *           SetObjectOwner    (GDI32.@)
  */
 void WINAPI SetObjectOwner( HGDIOBJ handle, HANDLE owner )




More information about the wine-cvs mailing list