[ros-diffs] [greatlrd] 32631: partly implement gdi32 Escape implemented command GETSCALINGFACTOR Escape change from if to switch statment for it is faster and cleaner

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Sun Mar 9 22:36:10 CET 2008


Author: greatlrd
Date: Sun Mar  9 16:36:09 2008
New Revision: 32631

URL: http://svn.reactos.org/svn/reactos?rev=3D32631&view=3Drev
Log:
partly implement gdi32 Escape
implemented command GETSCALINGFACTOR Escape
change from if to switch statment for it is faster and cleaner
 =


Modified:
    trunk/reactos/dll/win32/gdi32/misc/stubs.c

Modified: trunk/reactos/dll/win32/gdi32/misc/stubs.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/misc/=
stubs.c?rev=3D32631&r1=3D32630&r2=3D32631&view=3Ddiff
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/reactos/dll/win32/gdi32/misc/stubs.c (original)
+++ trunk/reactos/dll/win32/gdi32/misc/stubs.c Sun Mar  9 16:36:09 2008
@@ -1502,35 +1502,54 @@
 STDCALL
 Escape(HDC hdc, INT nEscape, INT cbInput, LPCSTR lpvInData, LPVOID lpvOutD=
ata)
 {
-    int retValue =3D -1;
-
-    /* FIXME gdi share memory */
-
-    if (nEscape =3D=3D GETCOLORTABLE)
+    int retValue =3D -1;    =

+    HGDIOBJ hObject =3D hdc;
+    UINT Type =3D 0;
+
+    Type =3D GDI_HANDLE_GET_TYPE(hObject);
+
+    if (Type =3D=3D GDI_OBJECT_TYPE_METADC)
     {
-        retValue =3D GetSystemPaletteEntries(hdc, (UINT)*lpvInData, 1, (LP=
PALETTEENTRY)lpvOutData);
-        if ( !retValue )
+        /* FIXME we do not support metafile */
+        UNIMPLEMENTED;
+        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    }
+    else
+    {
+        switch (nEscape)
         {
-            retValue =3D -1;        =

+            case GETCOLORTABLE:            =

+                retValue =3D GetSystemPaletteEntries(hdc, (UINT)*lpvInData=
, 1, (LPPALETTEENTRY)lpvOutData);
+                if ( !retValue )
+                {
+                    retValue =3D -1;        =

+                }            =

+                break;
+
+            case GETEXTENDEDTEXTMETRICS:
+                retValue =3D (int) GetETM( hdc, (EXTTEXTMETRIC *) lpvOutDa=
ta) !=3D 0;
+                break;
+                =

+            case GETSCALINGFACTOR:       =

+                /* Note GETSCALINGFACTOR is outdated have been replace by =
GetDeviceCaps */
+                if ( Type =3D=3D GDI_OBJECT_TYPE_DC )
+                {                =

+                    if ( lpvOutData )
+                    {
+                        PPOINT ptr =3D (PPOINT) lpvOutData;
+                        ptr->x =3D 0;
+                        ptr->y =3D 0;                            =

+                    }
+                }                                =

+                retValue =3D 0;
+                break;
+
+            default:
+                UNIMPLEMENTED;
+                SetLastError(ERROR_CALL_NOT_IMPLEMENTED);                =

         }
-
-        /* FIXME tempary until Escape are completed */
-        return retValue;
     }
-    else if (nEscape =3D=3D GETEXTENDEDTEXTMETRICS)
-    {
-        retValue =3D (int) GetETM( hdc, (EXTTEXTMETRIC *) lpvOutData) !=3D=
 0;
-
-        /* FIXME tempary until Escape are completed */
-        return retValue;
-    }
-    else if ( nEscape !=3D QUERYESCSUPPORT )
-    {
     =

-    }
-
-    UNIMPLEMENTED;
-    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return retValue;
 }
 =





More information about the Ros-diffs mailing list