forget commit Implement of GdiGetLocalBrush, GdiGetLocalDC, GdiGetLocalFont
[reactos.git] / reactos / dll / win32 / gdi32 / misc / stubs.c
index 2aa29c4..cfd221c 100644 (file)
 
 #define UNIMPLEMENTED DbgPrint("GDI32: %s is unimplemented, please try again later.\n", __FUNCTION__);
 
+
 /*
  * @unimplemented
  */
 BOOL
 STDCALL
-CancelDC(
-       HDC     a0
-       )
+TranslateCharsetInfo(DWORD * lpSrc,
+                     LPCHARSETINFO lpCs,
+                     DWORD dwFlags)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return FALSE;
+    /* FIXME share memory */
+    return NtGdiTranslateCharsetInfo(lpSrc, lpCs, dwFlags );
 }
-  
 
 /*
  * @unimplemented
  */
 int
 STDCALL
-DrawEscape(
-       HDC             a0,
-       int             a1,
-       int             a2,
-       LPCSTR          a3
-       )
+StretchDIBits(HDC hdc,
+              int XDest,
+              int YDest,
+              int nDestWidth,
+              int nDestHeight,
+              int XSrc,
+              int YSrc,
+              int nSrcWidth,
+              int nSrcHeight,
+              CONST VOID *lpBits,
+              CONST BITMAPINFO *lpBitsInfo,
+              UINT iUsage,
+              DWORD dwRop)
+
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    /* FIXME share memory */
+    return NtGdiStretchDIBits(hdc, XDest, YDest, nDestWidth, nDestHeight, XSrc, YSrc, 
+                              nSrcWidth, nSrcHeight, lpBits, lpBitsInfo, iUsage, dwRop);
 }
 
+/*
+ * @unimplemented
+ */
+int
+STDCALL
+SetDIBits(HDC hdc,
+          HBITMAP hbmp,
+          UINT uStartScan,
+          UINT cScanLines,
+          CONST VOID *lpvBits,
+          CONST BITMAPINFO *lpbmi,
+          UINT fuColorUse)
+{
+    /* FIXME share memory */
+    return NtGdiSetDIBits(hdc, hbmp, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse);
+}
 
 /*
  * @unimplemented
  */
 int
 STDCALL
-EnumObjects(
-       HDC             a0,
-       int             a1,
-       GOBJENUMPROC    a2,
-       LPARAM          a3
-       )
+SetGraphicsMode(HDC hdc,
+                int iMode)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    /* FIXME share memory */
+    return NtGdiSetGraphicsMode(hdc, iMode);
+}
+
+/*
+ * @unimplemented
+ */
+int
+STDCALL
+SetPolyFillMode(HDC hdc,
+                int iPolyFillMode)
+{
+    /* FIXME share memory */
+    return NtGdiSetPolyFillMode(hdc, iPolyFillMode);
+}
+
+/*
+ * @unimplemented
+ */
+int
+STDCALL
+SetROP2(HDC hdc,
+        int fnDrawMode)
+{
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
+}
+
+/*
+ * @unimplemented
+ */
+int
+STDCALL
+SetStretchBltMode(HDC hdc, int iStretchMode)
+{
+    /* FIXME share memory */
+    return NtGdiSetStretchBltMode(hdc, iStretchMode);
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+STDCALL
+SetRectRgn(HRGN hrgn,
+           int nLeftRect,
+           int nTopRect,
+           int nRightRect,
+           int nBottomRect)
+{
+    /* FIXME metadc stuff */
+    return NtGdiSetRectRgn(hrgn, nLeftRect, nTopRect, nRightRect, nBottomRect);
+}
+
+/*
+ * @unimplemented
+ */
+UINT
+STDCALL
+SetTextAlign(HDC hdc,
+             UINT fMode)
+{
+    /* FIXME share memory */
+    return NtGdiSetTextAlign(hdc, fMode);
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+STDCALL
+SetViewportExtEx(HDC hdc,
+                 int nXExtent,
+                 int nYExtent,
+                 LPSIZE lpSize)
+{
+    /* FIXME share memory */
+    return NtGdiSetViewportExtEx(hdc, nXExtent, nYExtent, lpSize);
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+STDCALL
+SetWindowOrgEx(HDC hdc,
+               int X,
+               int Y,
+               LPPOINT lpPoint)
+{
+    /* FIXME share memory */
+    return NtGdiSetWindowOrgEx(hdc,X,Y,lpPoint);
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+STDCALL
+SetWindowExtEx(HDC hdc,
+               int nXExtent,
+               int nYExtent,
+               LPSIZE lpSize)
+{
+    /* FIXME share memory */
+    return NtGdiSetWindowExtEx(hdc, nXExtent, nYExtent, lpSize);
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+STDCALL
+SetViewportOrgEx(HDC hdc,
+                 int X,
+                 int Y,
+                 LPPOINT lpPoint)
+{
+    /* FIXME share memory */
+    return NtGdiSetViewportOrgEx(hdc,X,Y,lpPoint);
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+STDCALL
+SetBrushOrgEx(HDC hdc,
+              int nXOrg,
+              int nYOrg,
+              LPPOINT lppt)
+{
+    /* FIXME share memory */
+    return NtGdiSetBrushOrg(hdc,nXOrg,nYOrg,lppt);
+}
+
+/*
+ * @unimplemented
+ */
+BOOL 
+STDCALL
+PtInRegion(IN HRGN hrgn,
+           int x,
+           int y)
+{
+    /* FIXME some stuff at user mode need be fixed */
+    return NtGdiPtInRegion(hrgn,x,y);
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+STDCALL
+RectInRegion(HRGN hrgn,
+             LPCRECT prcl)
+{
+    /* FIXME some stuff at user mode need be fixed */
+    return NtGdiRectInRegion(hrgn, (LPRECT) prcl);
+}
+
+/*
+ * @unimplemented
+ */
+BOOL
+STDCALL
+RestoreDC(IN HDC hdc,
+          IN INT iLevel)
+{
+    /* FIXME Sharememory */
+    return NtGdiRestoreDC(hdc, iLevel);
+}
+
+/*
+ * @unimplemented
+ */
+INT
+STDCALL
+SaveDC(IN HDC hdc)
+{
+    /* FIXME Sharememory */
+    return NtGdiSaveDC(hdc);
+}
+
+
+
+/*
+ * @unimplemented
+ */
+BOOL
+STDCALL
+CancelDC(HDC hdc)
+{
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
+
+/*
+ * @unimplemented
+ */
+int
+STDCALL
+DrawEscape(HDC  hdc,
+           int a1,
+           int a2,
+           LPCSTR a3)
+{
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
+}
+
+
+/*
+ * @unimplemented
+ */
+int
+STDCALL
+EnumObjects(HDC hdc,
+            int a1,
+            GOBJENUMPROC a2,
+            LPARAM a3)
+{
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -212,7 +457,7 @@ SetBoundsRect(HDC hdc,
               UINT flags)
 {
     /* FIXME add check for vaildate the flags */
-    return NtGdiSetBoundsRect(hdc, *prc, flags
+    return NtGdiSetBoundsRect(hdc, (LPRECT)prc, flags);
 }
 
 
@@ -246,21 +491,6 @@ SetMetaFileBitsEx(
        return 0;
 }
 
-/*
- * @unimplemented
- */
-UINT
-STDCALL
-SetSystemPaletteUse(
-       HDC     a0,
-       UINT    a1
-       )
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
 /*
  * @unimplemented
  */
@@ -681,11 +911,16 @@ ScaleWindowExtEx(
  */
 BOOL
 STDCALL
-UnrealizeObject(
-       HGDIOBJ a0
-       )
+UnrealizeObject(HGDIOBJ  hgdiobj)
 {
-       return NtGdiUnrealizeObject(a0);
+    BOOL retValue = TRUE;
+
+    if (GDI_HANDLE_GET_TYPE(hgdiobj) != GDI_OBJECT_TYPE_BRUSH)
+    {
+        retValue = NtGdiUnrealizeObject(hgdiobj);
+    }
+
+    return retValue;
 }
 
 
@@ -740,13 +975,11 @@ CheckColorsInGamut(
  */
 HCOLORSPACE
 STDCALL
-GetColorSpace(
-       HDC     hDc
-       )
+GetColorSpace(HDC hDc)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 
@@ -786,24 +1019,26 @@ GetDeviceGammaRamp( HDC hdc,
     return retValue;
 }
 
-
-    
-
-
-
 /*
- * @unimplemented
+ * @implemented
  */
 BOOL
 STDCALL
-SetDeviceGammaRamp(
-       HDC     a0,
-       LPVOID  a1
-       )
+SetDeviceGammaRamp(HDC hdc,
+                   LPVOID lpGammaRamp)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return FALSE;
+    BOOL retValue = FALSE;
+
+    if (lpGammaRamp)
+    {
+        retValue = NtGdiSetDeviceGammaRamp(hdc, lpGammaRamp);
+    }
+    else
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+    }
+
+    return  retValue;
 }
 
 
@@ -1055,13 +1290,6 @@ wglSwapLayerBuffers(
  * === WHERE ARE THEY DEFINED? =============
  */
 
-
-
-
-
-
-
-
 /*
  * @unimplemented
  */
@@ -1116,25 +1344,6 @@ GetGlyphOutlineWow(
        return 0;
 }
 
-
-
-
-
-/*
- * @unimplemented
- */
-DWORD
-STDCALL
-SetFontEnumeration(
-       DWORD   a0
-       )
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-
 /*
  * @unimplemented
  */
@@ -1293,9 +1502,9 @@ HENHMETAFILE
 STDCALL
 GdiConvertEnhMetaFile(HENHMETAFILE hmf)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1305,9 +1514,9 @@ BOOL
 STDCALL
 GdiDrawStream(HDC dc, ULONG l, VOID *v)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1317,69 +1526,33 @@ DWORD
 STDCALL
 GdiGetCodePage(HDC hdc)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
  * @unimplemented
  */
-HBRUSH 
+BOOL
 STDCALL
-GdiGetLocalBrush(HBRUSH hbr)
+GdiIsMetaFileDC(HDC hdc)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
  * @unimplemented
  */
-HDC 
+BOOL
 STDCALL
-GdiGetLocalDC(HDC hdc)
+GdiIsMetaPrintDC(HDC hdc)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- */
-HFONT 
-STDCALL
-GdiGetLocalFont(HFONT hfont)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-GdiIsMetaFileDC(HDC hdc)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-GdiIsMetaPrintDC(HDC hdc)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1389,9 +1562,9 @@ BOOL
 STDCALL
 GdiIsPlayMetafileDC(HDC hdc)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1401,9 +1574,9 @@ BOOL
 STDCALL
 GdiValidateHandle(HGDIOBJ hobj)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1413,9 +1586,9 @@ DWORD
 STDCALL
 GetBitmapAttributes(HBITMAP hbm)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1425,9 +1598,9 @@ DWORD
 STDCALL
 GetBrushAttributes(HBRUSH hbr)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1435,17 +1608,16 @@ GetBrushAttributes(HBRUSH hbr)
  */
 BOOL 
 STDCALL
-GetCharABCWidthsI(
-       HDC hdc,
-       UINT giFirst,
-       UINT cgi,
-       LPWORD pgi,
-       LPABC lpabc
+GetCharABCWidthsI(HDC hdc,
+                  UINT giFirst,
+                  UINT cgi,
+                  LPWORD pgi,
+                  LPABC lpabc
 )
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1453,17 +1625,16 @@ GetCharABCWidthsI(
  */
 BOOL 
 STDCALL
-GetCharWidthI(
-       HDC hdc,
-       UINT giFirst,
-       UINT cgi,
-       LPWORD pgi,
-       LPINT lpBuffer
+GetCharWidthI(HDC hdc,
+              UINT giFirst,
+              UINT cgi,
+              LPWORD pgi,
+              LPINT lpBuffer
 )
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 
@@ -1502,9 +1673,9 @@ HFONT
 STDCALL
 GetHFONT(HDC dc)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1512,13 +1683,12 @@ GetHFONT(HDC dc)
  */
 DWORD 
 STDCALL
-GetLayout(
-       HDC hdc
+GetLayout(HDC hdc
 )
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1567,9 +1737,9 @@ BOOL
 STDCALL
 MirrorRgn(HWND hwnd,HRGN hrgn)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 
@@ -1581,9 +1751,9 @@ DWORD
 STDCALL
 QueryFontAssocStatus(VOID)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1647,14 +1817,12 @@ SetBrushAttributes(HBRUSH hbm, DWORD dwFlags)
  */
 DWORD 
 STDCALL
-SetLayout(
-       HDC hdc,
-       DWORD dwLayout
-)
+SetLayout(HDC hdc,
+          DWORD dwLayout)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1664,45 +1832,21 @@ DWORD
 STDCALL
 SetLayoutWidth(HDC hdc,LONG wox,DWORD dwLayout)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
-/*
- * @unimplemented
- */
-BOOL 
-STDCALL
-SetMagicColors(HDC hdc,PALETTEENTRY peMagic,ULONG Index)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
 
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-SetVirtualResolution(HDC hdc, int cxVirtualDevicePixel,int cyVirtualDevicePixel,int cxVirtualDeviceMm, int cyVirtualDeviceMm)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
 
 /*
- * @unimplemented
+ * @implemented
  */
 int 
 STDCALL
 StartFormPage(HDC hdc)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    return StartPage(hdc);
 }
 
 /*
@@ -1712,8 +1856,8 @@ VOID
 STDCALL
 UnloadNetworkFonts(DWORD unknown)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
 }
 
 /*
@@ -1754,11 +1898,12 @@ GetTextExtentPointI(HDC hdc,
  */
 BOOL 
 STDCALL
-GdiRealizationInfo(HDC hdc, PREALIZATION_INFO pri)
+GdiRealizationInfo(HDC hdc,
+                   PREALIZATION_INFO pri)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 
@@ -1768,11 +1913,12 @@ GdiRealizationInfo(HDC hdc, PREALIZATION_INFO pri)
  */
 BOOL 
 STDCALL
-GetETM(HDC hdc,EXTTEXTMETRIC *petm)
+GetETM(HDC hdc,
+       EXTTEXTMETRIC *petm)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1780,11 +1926,14 @@ GetETM(HDC hdc,EXTTEXTMETRIC *petm)
  */
 BOOL
 STDCALL
-GdiAddGlsRecord(HDC hdc,DWORD unknown1,LPCSTR unknown2,LPRECT unknown3)
+GdiAddGlsRecord(HDC hdc,
+                DWORD unknown1,
+                LPCSTR unknown2,
+                LPRECT unknown3)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1794,9 +1943,9 @@ HANDLE
 STDCALL
 GdiConvertMetaFilePict(HGLOBAL hMem)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1806,68 +1955,72 @@ DEVMODEW *
 STDCALL
 GdiConvertToDevmodeW(DEVMODEA *dm)
 {
-  LPDEVMODEW dmw;
-  
-  dmw = HEAP_alloc(sizeof(DEVMODEW));
-#define COPYS(f,len) MultiByteToWideChar ( CP_THREAD_ACP, 0, (LPSTR)dm->f, len, dmw->f, len )
-#define COPYN(f) dmw->f = dm->f
-  COPYS(dmDeviceName, CCHDEVICENAME );
-  COPYN(dmSpecVersion);
-  COPYN(dmDriverVersion);
-  switch ( dm->dmSize )
+    LPDEVMODEW dmw;
+
+    dmw = HEAP_alloc(sizeof(DEVMODEW));
+    #define COPYS(f,len) MultiByteToWideChar ( CP_THREAD_ACP, 0, (LPSTR)dm->f, len, dmw->f, len )
+    #define COPYN(f) dmw->f = dm->f
+    COPYS(dmDeviceName, CCHDEVICENAME );
+    COPYN(dmSpecVersion);
+    COPYN(dmDriverVersion);
+    switch ( dm->dmSize )
     {
-    case SIZEOF_DEVMODEA_300:
-      dmw->dmSize = SIZEOF_DEVMODEW_300;
-      break;
-    case SIZEOF_DEVMODEA_400:
-      dmw->dmSize = SIZEOF_DEVMODEW_400;
-      break;
-    case SIZEOF_DEVMODEA_500:
-    default: /* FIXME what to do??? */
-      dmw->dmSize = SIZEOF_DEVMODEW_500;
-      break;
+        case SIZEOF_DEVMODEA_300:
+            dmw->dmSize = SIZEOF_DEVMODEW_300;
+            break;
+        case SIZEOF_DEVMODEA_400:
+            dmw->dmSize = SIZEOF_DEVMODEW_400;
+            break;
+        case SIZEOF_DEVMODEA_500:
+            default: /* FIXME what to do??? */
+                dmw->dmSize = SIZEOF_DEVMODEW_500;
+            break;
+    }
+    COPYN(dmDriverExtra);
+    COPYN(dmFields);
+    COPYN(dmPosition.x);
+    COPYN(dmPosition.y);
+    COPYN(dmScale);
+    COPYN(dmCopies);
+    COPYN(dmDefaultSource);
+    COPYN(dmPrintQuality);
+    COPYN(dmColor);
+    COPYN(dmDuplex);
+    COPYN(dmYResolution);
+    COPYN(dmTTOption);
+    COPYN(dmCollate);
+    COPYS(dmFormName,CCHFORMNAME);
+    COPYN(dmLogPixels);
+    COPYN(dmBitsPerPel);
+    COPYN(dmPelsWidth);
+    COPYN(dmPelsHeight);
+    COPYN(dmDisplayFlags); // aka dmNup
+    COPYN(dmDisplayFrequency);
+
+    if ( dm->dmSize <= SIZEOF_DEVMODEA_300 )
+    {
+        return dmw; // we're done with 0x300 fields
     }
-  COPYN(dmDriverExtra);
-  COPYN(dmFields);
-  COPYN(dmPosition.x);
-  COPYN(dmPosition.y);
-  COPYN(dmScale);
-  COPYN(dmCopies);
-  COPYN(dmDefaultSource);
-  COPYN(dmPrintQuality);
-  COPYN(dmColor);
-  COPYN(dmDuplex);
-  COPYN(dmYResolution);
-  COPYN(dmTTOption);
-  COPYN(dmCollate);
-  COPYS(dmFormName,CCHFORMNAME);
-  COPYN(dmLogPixels);
-  COPYN(dmBitsPerPel);
-  COPYN(dmPelsWidth);
-  COPYN(dmPelsHeight);
-  COPYN(dmDisplayFlags); // aka dmNup
-  COPYN(dmDisplayFrequency);
-
-  if ( dm->dmSize <= SIZEOF_DEVMODEA_300 )
-    return dmw; // we're done with 0x300 fields
 
-  COPYN(dmICMMethod);
-  COPYN(dmICMIntent);
-  COPYN(dmMediaType);
-  COPYN(dmDitherType);
-  COPYN(dmReserved1);
-  COPYN(dmReserved2);
+    COPYN(dmICMMethod);
+    COPYN(dmICMIntent);
+    COPYN(dmMediaType);
+    COPYN(dmDitherType);
+    COPYN(dmReserved1);
+    COPYN(dmReserved2);
 
-  if ( dm->dmSize <= SIZEOF_DEVMODEA_400 )
-    return dmw; // we're done with 0x400 fields
+    if ( dm->dmSize <= SIZEOF_DEVMODEA_400 )
+    {
+        return dmw; // we're done with 0x400 fields
+    }
 
-  COPYN(dmPanningWidth);
-  COPYN(dmPanningHeight);
+    COPYN(dmPanningWidth);
+    COPYN(dmPanningHeight);
 
-  return dmw;
+    return dmw;
 
-#undef COPYN
-#undef COPYS
+    #undef COPYN
+    #undef COPYS
 }
 
 /*
@@ -1877,9 +2030,9 @@ HENHMETAFILE
 STDCALL
 GdiCreateLocalEnhMetaFile(HENHMETAFILE hmo)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1889,9 +2042,9 @@ METAFILEPICT *
 STDCALL
 GdiCreateLocalMetaFilePict(HENHMETAFILE hmo)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 
@@ -1900,14 +2053,13 @@ GdiCreateLocalMetaFilePict(HENHMETAFILE hmo)
  */
 HANDLE 
 STDCALL
-GdiGetSpoolFileHandle(
-       LPWSTR          pwszPrinterName,
-       LPDEVMODEW      pDevmode,
-       LPWSTR          pwszDocName)
+GdiGetSpoolFileHandle(LPWSTR pwszPrinterName,
+                      LPDEVMODEW pDevmode,
+                      LPWSTR pwszDocName)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1915,12 +2067,11 @@ GdiGetSpoolFileHandle(
  */
 BOOL
 STDCALL
-GdiDeleteSpoolFileHandle(
-       HANDLE  SpoolFileHandle)
+GdiDeleteSpoolFileHandle(HANDLE SpoolFileHandle)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1928,12 +2079,11 @@ GdiDeleteSpoolFileHandle(
  */
 DWORD 
 STDCALL
-GdiGetPageCount(
-       HANDLE  SpoolFileHandle)
+GdiGetPageCount(HANDLE SpoolFileHandle)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1941,12 +2091,11 @@ GdiGetPageCount(
  */
 HDC
 STDCALL
-GdiGetDC(
-       HANDLE  SpoolFileHandle)
+GdiGetDC(HANDLE SpoolFileHandle)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1954,14 +2103,13 @@ GdiGetDC(
  */
 HANDLE 
 STDCALL
-GdiGetPageHandle(
-       HANDLE  SpoolFileHandle,
-       DWORD   Page,
-       LPDWORD pdwPageType)
+GdiGetPageHandle(HANDLE SpoolFileHandle,
+                 DWORD Page,
+                 LPDWORD pdwPageType)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1969,13 +2117,12 @@ GdiGetPageHandle(
  */
 BOOL
 STDCALL
-GdiStartDocEMF(
-       HANDLE          SpoolFileHandle,
-       DOCINFOW        *pDocInfo)
+GdiStartDocEMF(HANDLE SpoolFileHandle,
+               DOCINFOW *pDocInfo)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1983,12 +2130,11 @@ GdiStartDocEMF(
  */
 BOOL
 STDCALL
-GdiStartPageEMF(
-       HANDLE  SpoolFileHandle)
+GdiStartPageEMF(HANDLE SpoolFileHandle)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -1996,16 +2142,15 @@ GdiStartPageEMF(
  */
 BOOL
 STDCALL
-GdiPlayPageEMF(
-       HANDLE  SpoolFileHandle,
-       HANDLE  hemf,
-       RECT    *prectDocument,
-       RECT    *prectBorder,
-       RECT    *prectClip)
+GdiPlayPageEMF(HANDLE SpoolFileHandle,
+               HANDLE hemf,
+               RECT *prectDocument,
+               RECT *prectBorder,
+               RECT *prectClip)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -2013,13 +2158,12 @@ GdiPlayPageEMF(
  */
 BOOL
 STDCALL
-GdiEndPageEMF(
-       HANDLE  SpoolFileHandle,
-       DWORD   dwOptimization)
+GdiEndPageEMF(HANDLE SpoolFileHandle,
+              DWORD dwOptimization)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -2027,12 +2171,11 @@ GdiEndPageEMF(
  */
 BOOL
 STDCALL
-GdiEndDocEMF(
-       HANDLE  SpoolFileHandle)
+GdiEndDocEMF(HANDLE SpoolFileHandle)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -2040,15 +2183,14 @@ GdiEndDocEMF(
  */
 BOOL
 STDCALL
-GdiGetDevmodeForPage(
-       HANDLE          SpoolFileHandle,
-       DWORD           dwPageNumber,
-       PDEVMODEW       *pCurrDM,
-       PDEVMODEW       *pLastDM)
+GdiGetDevmodeForPage(HANDLE SpoolFileHandle,
+                     DWORD dwPageNumber,
+                     PDEVMODEW *pCurrDM,
+                     PDEVMODEW *pLastDM)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -2056,25 +2198,24 @@ GdiGetDevmodeForPage(
  */
 BOOL
 STDCALL
-GdiResetDCEMF(
-       HANDLE          SpoolFileHandle,
-       PDEVMODEW       pCurrDM)
+GdiResetDCEMF(HANDLE SpoolFileHandle,
+              PDEVMODEW pCurrDM)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 
 HBITMAP 
 STDCALL 
-CreateDIBitmap(HDC
-       hDc, const BITMAPINFOHEADER *Header,
-       DWORD Init, LPCVOID Bits, const BITMAPINFO *Data,
-       UINT ColorUse)
+CreateDIBitmap(HDC hDc,
+               const BITMAPINFOHEADER *Header,
+               DWORD Init, LPCVOID Bits, const BITMAPINFO *Data,
+               UINT ColorUse)
 {
-       /* FIMXE we need do more thing in user mode */
-       return NtGdiCreateDIBitmap(hDc, Header, Init, Bits, Data,  ColorUse);
+    /* FIMXE we need do more thing in user mode */
+    return NtGdiCreateDIBitmap(hDc, Header, Init, Bits, Data,  ColorUse);
 }
 
 /*
@@ -2083,9 +2224,9 @@ CreateDIBitmap(HDC
 INT
 STDCALL
 CombineRgn(HRGN  hDest,
-                    HRGN  hSrc1,
-                    HRGN  hSrc2,
-                    INT  CombineMode)
+           HRGN  hSrc1,
+           HRGN  hSrc2,
+           INT  CombineMode)
 {
     /* FIXME some part should be done in user mode */
     return NtGdiCombineRgn(hDest, hSrc1, hSrc2, CombineMode); 
@@ -2095,179 +2236,25 @@ CombineRgn(HRGN  hDest,
  * @unimplemented
  */
 HBITMAP STDCALL
-CreateBitmap(
-    INT  Width,
-    INT  Height,
-    UINT  Planes,
-    UINT  BitsPixel,
-    PCVOID pUnsafeBits)
+CreateBitmap(INT  Width,
+             INT  Height,
+             UINT  Planes,
+             UINT  BitsPixel,
+             PCVOID pUnsafeBits)
 {
     /* FIXME some part should be done in user mode */
     return NtGdiCreateBitmap(Width, Height, Planes, BitsPixel, (LPBYTE) pUnsafeBits);
 }
 
-
-
-
 /*
  * @unimplemented
  */
 LPWSTR STDCALL
 EngGetDriverName(HDEV hdev)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- * wrong info it is not Obsolete GDI Function as http://www.osronline.com/DDKx/graphics/gdioview_20tj.htm say
- */
-BOOL STDCALL
-EngQueryEMFInfo(HDEV hdev,EMFINFO *pEMFInfo)
-{
-#if 0
-    BOOL retValue = FALSE;
-    DHPDEV Dhpdev;
-
-    if ((!hdev) && (!pEMFInfo))
-    {
-        if ((Dhpdev = NtGdiGetDhpdev(hdev)))
-        {
-            /* FIXME check if it support or if it is pEMFInfo we got */
-            /* FIXME copy the data from Dhpdev to pEMFInfo           */
-        }
-    }
-    return retValue;
-#else
-    return FALSE;
-#endif
-}
-
-
-/*
- * @unimplemented
- */
-INT STDCALL 
-EngWideCharToMultiByte( UINT CodePage,
-                        LPWSTR WideCharString,
-                        INT BytesInWideCharString,
-                        LPSTR MultiByteString,
-                        INT BytesInMultiByteString)
-{
-  return WideCharToMultiByte(
-                         CodePage,
-                         0,
-                         WideCharString,
-                        (BytesInWideCharString/sizeof(WCHAR)), /* Bytes to (in WCHARs) */
-                         MultiByteString,
-                         BytesInMultiByteString,
-                         NULL,
-                         NULL);
-}
-
-
-
-/*
- * @unimplemented
- */
-BOOL STDCALL
-STROBJ_bEnum(STROBJ *pstro,ULONG *pc,PGLYPHPOS *ppgpos)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- */
-BOOL STDCALL
-STROBJ_bEnumPositionsOnly(STROBJ *pstro,ULONG *pc,PGLYPHPOS *ppgpos)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- */
-BOOL STDCALL
-STROBJ_bGetAdvanceWidths(STROBJ *pso,ULONG iFirst,ULONG c,POINTQF *pptqD)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- */
-DWORD STDCALL
-STROBJ_dwGetCodePage(STROBJ  *pstro)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- */
-VOID STDCALL
-STROBJ_vEnumStart(STROBJ *pstro)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-}
-
-/*
- * @unimplemented
- */
-BOOL STDCALL
-XFORMOBJ_bApplyXform(XFORMOBJ *pxo,ULONG iMode,ULONG cPoints,PVOID pvIn,PVOID pvOut)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- */
-ULONG STDCALL
-XFORMOBJ_iGetXform(XFORMOBJ *pxo,XFORML *pxform)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- */
-ULONG STDCALL
-XLATEOBJ_cGetPalette(XLATEOBJ *XlateObj,
-                    ULONG PalOutType,
-                    ULONG cPal,
-                    ULONG *OutPal)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
-
-/*
- * @unimplemented
- */
-HANDLE STDCALL
-XLATEOBJ_hGetColorTransform(XLATEOBJ *pxlo)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -2275,20 +2262,21 @@ XLATEOBJ_hGetColorTransform(XLATEOBJ *pxlo)
  */
 ULONG STDCALL
 XLATEOBJ_iXlate(XLATEOBJ *XlateObj,
-               ULONG Color)
+                ULONG Color)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
  * @unimplemented
  */
-ULONG * STDCALL
+ULONG *
+STDCALL
 XLATEOBJ_piVector(XLATEOBJ *XlateObj)
 {
-  return XlateObj->pulXlate;
+    return XlateObj->pulXlate;
 }
 
 /*
@@ -2296,18 +2284,16 @@ XLATEOBJ_piVector(XLATEOBJ *XlateObj)
  */
 BOOL 
 STDCALL
-GdiPlayEMF
-(
-       LPWSTR     pwszPrinterName,
-       LPDEVMODEW pDevmode,
-       LPWSTR     pwszDocName,
-       EMFPLAYPROC pfnEMFPlayFn,
-       HANDLE     hPageQuery
+GdiPlayEMF(LPWSTR pwszPrinterName,
+           LPDEVMODEW pDevmode,
+           LPWSTR pwszDocName,
+           EMFPLAYPROC pfnEMFPlayFn,
+           HANDLE hPageQuery
 )
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 
@@ -2317,16 +2303,13 @@ GdiPlayEMF
  */
 BOOL
 STDCALL
-GdiPlayPrivatePageEMF
-(
-       HANDLE  SpoolFileHandle,
-       DWORD   unknown,
-       RECT    *prectDocument
-)
+GdiPlayPrivatePageEMF(HANDLE SpoolFileHandle,
+                      DWORD unknown,
+                      RECT *prectDocument)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return 0;
 }
 
 /*
@@ -2334,8 +2317,8 @@ GdiPlayPrivatePageEMF
  */
 VOID STDCALL GdiInitializeLanguagePack(DWORD InitParam)
 {
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    UNIMPLEMENTED;
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
 }
 
 
@@ -2346,8 +2329,8 @@ INT
 STDCALL
 ExcludeClipRect(IN HDC hdc, IN INT xLeft, IN INT yTop, IN INT xRight, IN INT yBottom)
 {
-       /* FIXME some part need be done on user mode size */
-       return NtGdiExcludeClipRect(hdc, xLeft, yTop, xRight, yBottom);
+    /* FIXME some part need be done on user mode size */
+    return NtGdiExcludeClipRect(hdc, xLeft, yTop, xRight, yBottom);
 }
 
 /*
@@ -2357,8 +2340,8 @@ INT
 STDCALL
 ExtSelectClipRgn( IN HDC hdc, IN HRGN hrgn, IN INT iMode)
 {
-       /* FIXME some part need be done on user mode size */
-       return NtGdiExtSelectClipRgn(hdc,hrgn, iMode);
+    /* FIXME some part need be done on user mode size */
+    return NtGdiExtSelectClipRgn(hdc,hrgn, iMode);
 }
 
 /*
@@ -2384,18 +2367,17 @@ GdiGradientFill(
  */
 BOOL
 STDCALL
-GdiTransparentBlt(
-    IN HDC hdcDst,
-    IN INT xDst,
-    IN INT yDst,
-    IN INT cxDst,
-    IN INT cyDst,
-    IN HDC hdcSrc,
-    IN INT xSrc,
-    IN INT ySrc,
-    IN INT cxSrc,
-    IN INT cySrc,
-    IN COLORREF TransColor
+GdiTransparentBlt(IN HDC hdcDst,
+                  IN INT xDst,
+                  IN INT yDst,
+                  IN INT cxDst,
+                  IN INT cyDst,
+                  IN HDC hdcSrc,
+                  IN INT xSrc,
+                  IN INT ySrc,
+                  IN INT cxSrc,
+                  IN INT cySrc,
+                  IN COLORREF TransColor
 )
 {
     /* FIXME some part need be done in user mode */