gdiplus: Added support for more page units.
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 8a53c03..df481cd 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -93,6 +93,17 @@
         case UnitInch:
             unitscale = GetDeviceCaps(graphics->hdc, LOGPIXELSX);
             break;
+        case UnitPoint:
+            unitscale = ((REAL)GetDeviceCaps(graphics->hdc, LOGPIXELSX)) / 72.0;
+            break;
+        case UnitDocument:
+            unitscale = ((REAL)GetDeviceCaps(graphics->hdc, LOGPIXELSX)) / 300.0;
+            break;
+        case UnitMillimeter:
+            unitscale = ((REAL)GetDeviceCaps(graphics->hdc, LOGPIXELSX)) / 25.4;
+            break;
+        case UnitPixel:
+        case UnitDisplay:
         default:
             unitscale = 1.0;
             break;
@@ -1151,7 +1162,7 @@
 
 GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics *graphics, GpUnit unit)
 {
-    if(!graphics)
+    if(!graphics || (unit == UnitWorld))
         return InvalidParameter;
 
     graphics->unit = unit;