Improved GetRandomRegion().

diff --git a/objects/region.c b/objects/region.c
index 8ce2d01..bb5b94d 100644
--- a/objects/region.c
+++ b/objects/region.c
@@ -2578,7 +2578,9 @@
  */
 INT WINAPI GetRandomRgn(HDC hDC, HRGN hRgn, DWORD dwCode)
 {
-    FIXME("(0x%x 0x%x 0x%lx): empty stub!\n",
+    DC *dc;
+
+    FIXME("(0x%lx 0x%lx 0x%lx): empty stub!\n",
 	   hDC, hRgn, dwCode);
 
     switch (dwCode)
@@ -2586,6 +2588,11 @@
 	case 1:
 	    return GetClipRgn (hDC, hRgn);
 
+	case 4:
+	    dc = DC_GetDCPtr (hDC);
+	    CombineRgn (hRgn, dc->w.hVisRgn, 0, RGN_COPY);
+	    return 1;
+
 	default:
 	    return -1;
     }