mirror of
https://github.com/reactos/reactos.git
synced 2024-07-31 00:28:56 +00:00
revert r33403 for it break abiword
we need fixing gdi32.dll bugs before we can fix it correct svn path=/trunk/; revision=33404
This commit is contained in:
parent
608264fa22
commit
dc6e9467cc
|
@ -43,14 +43,11 @@ IntGdiCreateBitmap(
|
|||
SIZEL Size;
|
||||
LONG WidthBytes;
|
||||
|
||||
|
||||
/* NOTE: Windows also doesn't store nr. of planes separately! */
|
||||
BitsPixel = BITMAPOBJ_GetRealBitsPixel(BitsPixel * Planes);
|
||||
|
||||
/* Check parameters */
|
||||
|
||||
if ( (Height <= 0) || (Width <= 0) || (Width > 0x7FFFFFFF) ||
|
||||
(Planes > 32) || (BitsPixel > 32) || (BitsPixel == 0) )
|
||||
if (BitsPixel == 0 || Width < 0)
|
||||
{
|
||||
DPRINT1("Width = %d, Height = %d BitsPixel = %d\n", Width, Height, BitsPixel);
|
||||
SetLastWin32Error(ERROR_INVALID_PARAMETER);
|
||||
|
@ -59,8 +56,9 @@ IntGdiCreateBitmap(
|
|||
|
||||
WidthBytes = BITMAPOBJ_GetWidthBytes(Width, Planes * BitsPixel);
|
||||
|
||||
Size.cx = Width;
|
||||
Size.cy = Height;
|
||||
Size.cx = abs(Width);
|
||||
Size.cy = abs(Height);
|
||||
|
||||
/* Create the bitmap object. */
|
||||
hBitmap = IntCreateBitmap(Size, WidthBytes,
|
||||
BitmapFormat(BitsPixel, BI_RGB),
|
||||
|
@ -114,8 +112,15 @@ 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);
|
||||
}
|
||||
}
|
||||
_SEH_HANDLE
|
||||
{
|
||||
hBitmap = 0;
|
||||
|
|
Loading…
Reference in a new issue