mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 19:35:44 +00:00
1. remove hack in NtGdiCreateBitmap
2. BugFix IntGdiCreateBitmap 1. Height can not be negative value 2. width can not be negative value 3. Planes or BitsPerPixel can not be biger that 32Bpp 4. BitsPerPixel can not be 0 5. width size is max 0x7FFFFFFF hex svn path=/trunk/; revision=33403
This commit is contained in:
parent
7eab8b0750
commit
608264fa22
1 changed files with 12 additions and 17 deletions
|
@ -43,22 +43,24 @@ IntGdiCreateBitmap(
|
|||
SIZEL Size;
|
||||
LONG WidthBytes;
|
||||
|
||||
|
||||
/* NOTE: Windows also doesn't store nr. of planes separately! */
|
||||
BitsPixel = BITMAPOBJ_GetRealBitsPixel(BitsPixel * Planes);
|
||||
|
||||
/* Check parameters */
|
||||
if (BitsPixel == 0 || Width < 0)
|
||||
{
|
||||
DPRINT1("Width = %d, Height = %d BitsPixel = %d\n", Width, Height, BitsPixel);
|
||||
SetLastWin32Error(ERROR_INVALID_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( (Height <= 0) || (Width <= 0) || (Width > 0x7FFFFFFF) ||
|
||||
(Planes > 32) || (BitsPixel > 32) || (BitsPixel == 0) )
|
||||
{
|
||||
DPRINT1("Width = %d, Height = %d BitsPixel = %d\n", Width, Height, BitsPixel);
|
||||
SetLastWin32Error(ERROR_INVALID_PARAMETER);
|
||||
return 0;
|
||||
}
|
||||
|
||||
WidthBytes = BITMAPOBJ_GetWidthBytes(Width, Planes * BitsPixel);
|
||||
|
||||
Size.cx = abs(Width);
|
||||
Size.cy = abs(Height);
|
||||
|
||||
Size.cx = Width;
|
||||
Size.cy = Height;
|
||||
/* Create the bitmap object. */
|
||||
hBitmap = IntCreateBitmap(Size, WidthBytes,
|
||||
BitmapFormat(BitsPixel, BI_RGB),
|
||||
|
@ -112,14 +114,7 @@ NtGdiCreateBitmap(
|
|||
ProbeForRead(pUnsafeBits, cjBits, 1);
|
||||
}
|
||||
|
||||
if (0 == Width || 0 == Height)
|
||||
{
|
||||
hBitmap = IntGdiCreateBitmap (1, 1, 1, 1, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
hBitmap = IntGdiCreateBitmap(Width, Height, Planes, BitsPixel, pUnsafeBits);
|
||||
}
|
||||
hBitmap = IntGdiCreateBitmap(Width, Height, Planes, BitsPixel, pUnsafeBits);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue