Authors: Francis Beaudet <francis@macadamian.com>, Sylvain St-Germain <sylvain@macadamian.com>, Thuy Nguyen <thuy@macadamian.com>
Lots of new stubs.

diff --git a/graphics/metafiledrv/init.c b/graphics/metafiledrv/init.c
index 3aee5e0..8684b0a 100644
--- a/graphics/metafiledrv/init.c
+++ b/graphics/metafiledrv/init.c
@@ -196,6 +196,23 @@
   return CreateMetaFile16( filename );
 }
 
+/**********************************************************************
+ *          CreateMetaFile32W   (GDI32.52)
+ */
+HDC32 WINAPI CreateMetaFile32W(LPCWSTR filename)
+{
+    LPSTR filenameA;
+    HDC32 hReturnDC;
+
+    filenameA = HEAP_strdupWtoA( GetProcessHeap(), 0, filename );
+
+    hReturnDC = CreateMetaFile32A(filenameA);
+
+    HeapFree( GetProcessHeap(), 0, filenameA );
+
+    return hReturnDC;
+}
+
 static DC *METAFILE_CloseMetaFile( HDC32 hdc ) 
 {
     DC *dc;
@@ -310,8 +327,8 @@
 
 **********************************************************************/
 
-/*
-  need wide version as well
+/**********************************************************************
+ *          CreateEnhMetaFile32A   (GDI32.41)
 */
 HDC32 WINAPI CreateEnhMetaFile32A( 
     HDC32 hdc, /* optional reference DC */
@@ -351,9 +368,45 @@
     TRACE(metafile, "returning %04x\n", dc->hSelf);
     return dc->hSelf;
 #endif
+
+    FIXME(metafile,
+         "(0x%lx,%s,%p,%s): stub\n",
+         hdc,
+         filename,
+         rect,
+         description);
+
     return 0;
 }
 
+/**********************************************************************
+ *          CreateEnhMetaFile32W   (GDI32.42)
+ */
+HDC32 WINAPI CreateEnhMetaFile32W(
+    HDC32         hdc,        /* optional reference DC */
+    LPCWSTR       filename,   /* optional filename for disk metafiles */
+    const RECT32* rect,       /* optional bounding rectangle */
+    LPCWSTR       description /* optional description */ 
+    )
+{
+    LPSTR filenameA;
+    LPSTR descriptionA;
+    HDC32 hReturnDC;
+
+    filenameA    = HEAP_strdupWtoA( GetProcessHeap(), 0, filename );
+    descriptionA = HEAP_strdupWtoA( GetProcessHeap(), 0, description );
+
+    hReturnDC = CreateEnhMetaFile32A(hdc,
+                                    filenameA,
+                                    rect,
+                                    descriptionA);
+
+    HeapFree( GetProcessHeap(), 0, filenameA );
+    HeapFree( GetProcessHeap(), 0, descriptionA );
+
+    return hReturnDC;
+}
+
 HENHMETAFILE32 WINAPI CloseEnhMetaFile32( 
                HDC32 hdc  /* metafile DC */
 	       )
diff --git a/graphics/painting.c b/graphics/painting.c
index 6992cf7..df9b38e 100644
--- a/graphics/painting.c
+++ b/graphics/painting.c
@@ -126,6 +126,43 @@
     	   dc->funcs->pArc(dc,left,top,right,bottom,xstart,ystart,xend,yend);
 }
 
+/***********************************************************************
+ *           ArcTo32    (GDI32.8)
+ */
+BOOL32 WINAPI ArcTo32( HDC32 hdc, 
+                      INT32 left,   INT32 top, 
+                      INT32 right,  INT32 bottom,
+                      INT32 xstart, INT32 ystart,
+                      INT32 xend,   INT32 yend )
+{
+    BOOL32 result;
+
+    /*
+     * According to the documentation, a line is drawn from the current
+     * position to the starting point of the arc.
+     */
+    LineTo32(hdc, xstart, ystart);
+
+    /*
+     * Then the arc is drawn.
+     */
+    result = Arc32(hdc, 
+                  left, top,
+                  right, bottom,
+                  xstart, ystart,
+                  xend, yend);
+
+    /*
+     * If no error occured, the current position is moved to the ending
+     * point of the arc.
+     */
+    if (result)
+    {
+        MoveToEx32(hdc, xend, yend, NULL);
+    }
+
+    return result;
+}
 
 /***********************************************************************
  *           Pie16    (GDI.26)
@@ -1144,3 +1181,32 @@
     return ret;
 }
 
+
+/*************************************************************************
+ * StartDoc32W [GDI32.348]
+ * 
+ */
+INT32 WINAPI 
+StartDoc32W(HDC32 hdc ,const DOCINFO32W* doc) {
+  FIXME(gdi,"stub\n");
+  SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 
+  return 0; /* failure*/
+}
+
+/******************************************************************************
+ *                 PolylineTo32      [GDI32.277]
+ */
+BOOL32 WINAPI PolylineTo32(HDC32 hdc, const POINT32 *lppt, DWORD cCount)
+{
+    FIXME(gdi, "(%d,%p,%ld): stub\n", hdc, lppt, cCount);
+    return 1;
+}
+
+/******************************************************************************
+ *                 AbortDoc32        [GDI32.0]
+ */
+INT32 WINAPI AbortDoc32(HDC32 hdc)
+{
+    FIXME(gdi, "(%d): stub\n", hdc);
+    return 1;
+}