- Setup RectInRegion for internal use.

svn path=/trunk/; revision=51102
This commit is contained in:
James Tabor 2011-03-21 02:20:24 +00:00
parent 508ce4d9f8
commit 01ecf02e26
3 changed files with 23 additions and 12 deletions

View file

@ -44,6 +44,7 @@ INT APIENTRY IntGdiGetRgnBox(HRGN, RECTL*);
BOOL FASTCALL IntGdiPaintRgn(PDC, HRGN ); BOOL FASTCALL IntGdiPaintRgn(PDC, HRGN );
HRGN FASTCALL IntCreatePolyPolygonRgn(PPOINT, PULONG, INT, INT); HRGN FASTCALL IntCreatePolyPolygonRgn(PPOINT, PULONG, INT, INT);
INT FASTCALL IntGdiOffsetRgn(PROSRGNDATA,INT,INT); INT FASTCALL IntGdiOffsetRgn(PROSRGNDATA,INT,INT);
BOOL FASTCALL IntRectInRegion(HRGN,LPRECTL);
INT FASTCALL IntGdiCombineRgn(PROSRGNDATA, PROSRGNDATA, PROSRGNDATA, INT); INT FASTCALL IntGdiCombineRgn(PROSRGNDATA, PROSRGNDATA, PROSRGNDATA, INT);
INT FASTCALL REGION_Complexity(PROSRGNDATA); INT FASTCALL REGION_Complexity(PROSRGNDATA);

View file

@ -16,7 +16,6 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
/* $Id$ */
#include <win32k.h> #include <win32k.h>

View file

@ -3204,6 +3204,27 @@ IntCreatePolyPolygonRgn(
return hrgn; return hrgn;
} }
BOOL
FASTCALL
IntRectInRegion(
HRGN hRgn,
LPRECTL rc
)
{
PROSRGNDATA Rgn;
BOOL Ret;
if (!(Rgn = RGNOBJAPI_Lock(hRgn, NULL)))
{
return ERROR;
}
Ret = REGION_RectInRegion(Rgn, rc);
RGNOBJAPI_Unlock(Rgn);
return Ret;
}
// //
// NtGdi Exported Functions // NtGdi Exported Functions
// //
@ -3765,16 +3786,9 @@ NtGdiRectInRegion(
LPRECTL unsaferc LPRECTL unsaferc
) )
{ {
PROSRGNDATA Rgn;
RECTL rc = {0}; RECTL rc = {0};
BOOL Ret;
NTSTATUS Status = STATUS_SUCCESS; NTSTATUS Status = STATUS_SUCCESS;
if (!(Rgn = RGNOBJAPI_Lock(hRgn, NULL)))
{
return ERROR;
}
_SEH2_TRY _SEH2_TRY
{ {
ProbeForRead(unsaferc, sizeof(RECT), 1); ProbeForRead(unsaferc, sizeof(RECT), 1);
@ -3788,15 +3802,12 @@ NtGdiRectInRegion(
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
RGNOBJAPI_Unlock(Rgn);
SetLastNtError(Status); SetLastNtError(Status);
DPRINT1("NtGdiRectInRegion: bogus rc\n"); DPRINT1("NtGdiRectInRegion: bogus rc\n");
return ERROR; return ERROR;
} }
Ret = REGION_RectInRegion(Rgn, &rc); return IntRectInRegion(hRgn, &rc);
RGNOBJAPI_Unlock(Rgn);
return Ret;
} }
BOOL BOOL