Commit in reactos on MAIN
lib/gdi32/misc/stubs.c+1-151.52 -> 1.53
lib/gdi32/objects/region.c+131.11 -> 1.12
subsys/win32k/objects/region.c+25-21.48 -> 1.49
+39-17
3 modified files
implemented InvertRgn()

reactos/lib/gdi32/misc
stubs.c 1.52 -> 1.53
diff -u -r1.52 -r1.53
--- stubs.c	9 Apr 2004 20:03:12 -0000	1.52
+++ stubs.c	23 Apr 2004 13:34:04 -0000	1.53
@@ -1,4 +1,4 @@
-/* $Id: stubs.c,v 1.52 2004/04/09 20:03:12 navaraf Exp $
+/* $Id: stubs.c,v 1.53 2004/04/23 13:34:04 weiden Exp $
  *
  * reactos/lib/gdi32/misc/stubs.c
  *
@@ -413,20 +413,6 @@
  */
 BOOL
 STDCALL
-InvertRgn(
-	HDC	hDc,
-	HRGN	hRgn
-	)
-{
-	SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-	return FALSE;
-}
-
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
 PlayMetaFile(
 	HDC		a0,
 	HMETAFILE	a1

reactos/lib/gdi32/objects
region.c 1.11 -> 1.12
diff -u -r1.11 -r1.12
--- region.c	8 Nov 2003 22:54:26 -0000	1.11
+++ region.c	23 Apr 2004 13:34:04 -0000	1.12
@@ -296,3 +296,16 @@
 {
 	return NtGdiRectInRegion(a0,(CONST PRECT)a1);
 }
+
+/*
+ * @implemented
+ */
+BOOL
+STDCALL
+InvertRgn(
+	HDC	hDc,
+	HRGN	hRgn
+	)
+{
+	return NtGdiInvertRgn(hDc, hRgn);
+}

reactos/subsys/win32k/objects
region.c 1.48 -> 1.49
diff -u -r1.48 -r1.49
--- region.c	9 Apr 2004 20:03:20 -0000	1.48
+++ region.c	23 Apr 2004 13:34:04 -0000	1.49
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: region.c,v 1.48 2004/04/09 20:03:20 navaraf Exp $ */
+/* $Id: region.c,v 1.49 2004/04/23 13:34:04 weiden Exp $ */
 #undef WIN32_LEAN_AND_MEAN
 #include <windows.h>
 #include <ddk/ntddk.h>
@@ -1952,7 +1952,30 @@
 NtGdiInvertRgn(HDC  hDC,
                     HRGN  hRgn)
 {
-  UNIMPLEMENTED;
+  PROSRGNDATA RgnData;
+  ULONG i;
+  PRECT rc;
+  
+  if(!(RgnData = RGNDATA_LockRgn(hRgn)))
+  {
+    SetLastWin32Error(ERROR_INVALID_HANDLE);
+    return FALSE;
+  }
+  
+  rc = (PRECT)RgnData->Buffer;
+  for(i = 0; i < RgnData->rdh.nCount; i++)
+  {
+    
+    if(!NtGdiPatBlt(hDC, rc->left, rc->top, rc->right - rc->left, rc->bottom - rc->top, DSTINVERT))
+    {
+      RGNDATA_UnlockRgn(hRgn);
+      return FALSE;
+    }
+    rc++;
+  }
+  
+  RGNDATA_UnlockRgn(hRgn);
+  return TRUE;
 }
 
 INT
CVSspam 0.2.8