mirror of
https://github.com/reactos/reactos.git
synced 2024-10-14 21:25:14 +00:00
Kill reactos own syscall api NtGdiCreatePolygonRgn, it have been redirect to another ros own syscall named NtGdiCreatePolyPolygonRgn. see my last commit for gdi32
svn path=/trunk/; revision=28485
This commit is contained in:
parent
75fff0653f
commit
6b5a7d3908
|
@ -3421,100 +3421,6 @@ IntCreatePolyPolgonRgn(POINT *Pts,
|
|||
return hrgn;
|
||||
}
|
||||
|
||||
HRGN
|
||||
STDCALL
|
||||
NtGdiCreatePolygonRgn(CONST PPOINT pt,
|
||||
INT Count,
|
||||
INT PolyFillMode)
|
||||
{
|
||||
POINT *SafePoints;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
HRGN hRgn;
|
||||
|
||||
|
||||
if (pt == NULL || Count == 0 ||
|
||||
(PolyFillMode != WINDING && PolyFillMode != ALTERNATE))
|
||||
{
|
||||
/* Windows doesn't set a last error here */
|
||||
return (HRGN)0;
|
||||
}
|
||||
|
||||
if (Count == 1)
|
||||
{
|
||||
/* can't create a region with only one point! */
|
||||
SetLastWin32Error(ERROR_INVALID_PARAMETER);
|
||||
return (HRGN)0;
|
||||
}
|
||||
|
||||
if (Count == 2)
|
||||
{
|
||||
/* Windows creates an empty region! */
|
||||
ROSRGNDATA *rgn;
|
||||
|
||||
if(!(hRgn = RGNDATA_AllocRgn(1)))
|
||||
{
|
||||
return (HRGN)0;
|
||||
}
|
||||
if(!(rgn = RGNDATA_LockRgn(hRgn)))
|
||||
{
|
||||
NtGdiDeleteObject(hRgn);
|
||||
return (HRGN)0;
|
||||
}
|
||||
|
||||
EMPTY_REGION(rgn);
|
||||
|
||||
RGNDATA_UnlockRgn(rgn);
|
||||
return hRgn;
|
||||
}
|
||||
|
||||
_SEH_TRY
|
||||
{
|
||||
ProbeForRead(pt,
|
||||
Count * sizeof(POINT),
|
||||
1);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
{
|
||||
Status = _SEH_GetExceptionCode();
|
||||
}
|
||||
_SEH_END;
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastNtError(Status);
|
||||
return (HRGN)0;
|
||||
}
|
||||
|
||||
if (!(SafePoints = ExAllocatePoolWithTag(PagedPool, Count * sizeof(POINT), TAG_REGION)))
|
||||
{
|
||||
SetLastWin32Error(ERROR_NOT_ENOUGH_MEMORY);
|
||||
return (HRGN)0;
|
||||
}
|
||||
|
||||
_SEH_TRY
|
||||
{
|
||||
/* pointers were already probed! */
|
||||
RtlCopyMemory(SafePoints,
|
||||
pt,
|
||||
Count * sizeof(POINT));
|
||||
}
|
||||
_SEH_HANDLE
|
||||
{
|
||||
Status = _SEH_GetExceptionCode();
|
||||
}
|
||||
_SEH_END;
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
ExFreePool(SafePoints);
|
||||
SetLastNtError(Status);
|
||||
return (HRGN)0;
|
||||
}
|
||||
|
||||
hRgn = IntCreatePolyPolgonRgn(SafePoints, &Count, 1, PolyFillMode);
|
||||
|
||||
ExFreePool(SafePoints);
|
||||
return hRgn;
|
||||
}
|
||||
|
||||
HRGN
|
||||
STDCALL
|
||||
|
|
|
@ -752,7 +752,6 @@ NtGdiColorMatchToTarget 3
|
|||
NtGdiCopyEnhMetaFile 2
|
||||
NtGdiCreateDIBitmap 6
|
||||
NtGdiCreateEnhMetaFile 4
|
||||
NtGdiCreatePolygonRgn 3
|
||||
NtGdiCreatePolyPolygonRgn 4
|
||||
NtGdiCreateScalableFontResource 4
|
||||
NtGdiDeleteEnhMetaFile 1
|
||||
|
|
Loading…
Reference in a new issue