Get rid of a W->A crosscall (ResetDCA->ResetDCW).

diff --git a/dlls/wineps/init.c b/dlls/wineps/init.c
index 763559e..aed8dd8 100644
--- a/dlls/wineps/init.c
+++ b/dlls/wineps/init.c
@@ -384,11 +384,13 @@
 /**********************************************************************
  *	     ResetDC   (WINEPS.@)
  */
-HDC PSDRV_ResetDC( PSDRV_PDEVICE *physDev, const DEVMODEA *lpInitData )
+HDC PSDRV_ResetDC( PSDRV_PDEVICE *physDev, const DEVMODEW *lpInitData )
 {
     if(lpInitData) {
         HRGN hrgn;
-        PSDRV_MergeDevmodes(physDev->Devmode, (PSDRV_DEVMODEA *)lpInitData, physDev->pi);
+        DEVMODEA *devmodeA = DEVMODEdupWtoA(PSDRV_Heap, lpInitData);
+        PSDRV_MergeDevmodes(physDev->Devmode, (PSDRV_DEVMODEA *)devmodeA, physDev->pi);
+        HeapFree(PSDRV_Heap, 0, devmodeA);
         PSDRV_UpdateDevCaps(physDev);
         hrgn = CreateRectRgn(0, 0, physDev->horzRes, physDev->vertRes);
         SelectVisRgn16(HDC_16(physDev->hdc), HRGN_16(hrgn));
diff --git a/include/gdi.h b/include/gdi.h
index 76b90d8..2a8f9a7 100644
--- a/include/gdi.h
+++ b/include/gdi.h
@@ -250,7 +250,7 @@
     UINT     (*pRealizeDefaultPalette)(PHYSDEV);
     UINT     (*pRealizePalette)(PHYSDEV,HPALETTE,BOOL);
     BOOL     (*pRectangle)(PHYSDEV,INT,INT,INT,INT);
-    HDC      (*pResetDC)(PHYSDEV,const DEVMODEA*);
+    HDC      (*pResetDC)(PHYSDEV,const DEVMODEW*);
     BOOL     (*pRestoreDC)(PHYSDEV,INT);
     BOOL     (*pRoundRect)(PHYSDEV,INT,INT,INT,INT,INT,INT);
     INT      (*pSaveDC)(PHYSDEV);
diff --git a/objects/dc.c b/objects/dc.c
index 04a5f04..99a576e 100644
--- a/objects/dc.c
+++ b/objects/dc.c
@@ -812,9 +812,9 @@
 
 
 /***********************************************************************
- *           ResetDCA    (GDI32.@)
+ *           ResetDCW    (GDI32.@)
  */
-HDC WINAPI ResetDCA( HDC hdc, const DEVMODEA *devmode )
+HDC WINAPI ResetDCW( HDC hdc, const DEVMODEW *devmode )
 {
     DC *dc;
     HDC ret = hdc;
@@ -829,11 +829,20 @@
 
 
 /***********************************************************************
- *           ResetDCW    (GDI32.@)
+ *           ResetDCA    (GDI32.@)
  */
-HDC WINAPI ResetDCW( HDC hdc, const DEVMODEW *devmode )
+HDC WINAPI ResetDCA( HDC hdc, const DEVMODEA *devmode )
 {
-    return ResetDCA(hdc, (const DEVMODEA*)devmode); /* FIXME */
+    DEVMODEW *devmodeW;
+    HDC ret;
+
+    if (devmode) devmodeW = GdiConvertToDevmodeW(devmode);
+    else devmodeW = NULL;
+
+    ret = ResetDCW(hdc, devmodeW);
+
+    if (devmodeW) HeapFree(GetProcessHeap(), 0, devmodeW);
+    return ret;
 }