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;
+}