Remove redirect of CreateDIBitmap@24 to NtGdiCreateDIBitmap@24, and create stub for it. we need do some stuff in user mode

Fix : CreateDiscardableBitmap shall be call on CreateCompatibleBitmap not the NtGdiCreateCompatibleBitmap, for we need do some thing in user mode
Fix : CreateEllipticRgnIndirect it crash now, if the param is NULL, that goes same for all windows NT I tested 

svn path=/trunk/; revision=28473
This commit is contained in:
Magnus Olsen
2007-08-23 15:03:13 +00:00
parent 0c529df2e0
commit 122ab0a2bb
4 changed files with 24 additions and 14 deletions

View File

@@ -56,14 +56,7 @@ CreateDCW@16
CreateDIBPatternBrush@8
CreateDIBPatternBrushPt@8
CreateDIBSection@24
ClearBitmapAttributes@8
ClearBrushAttributes@8
CopyMetaFileA@8
CopyMetaFileW@8
CreateBrushIndirect@4
CreateDIBSection@24
CreateDIBitmap@24=NtGdiCreateDIBitmap@24
CreateDIBitmap@24
CreateDiscardableBitmap@12
CreateEllipticRgn@16=NtGdiCreateEllipticRgn@16
CreateEllipticRgnIndirect@4
@@ -73,6 +66,13 @@ CreateFontA@56
CreateFontIndirectA@4
CreateFontIndirectExA@4
CreateFontIndirectExW@4
ClearBitmapAttributes@8
ClearBrushAttributes@8
CopyMetaFileA@8
CopyMetaFileW@8
CreateBrushIndirect@4
CreateDIBSection@24
CreateFontIndirectW@4
CreateFontW@56
CreateHalftonePalette@4=NtGdiCreateHalftonePalette@4

View File

@@ -2432,6 +2432,18 @@ GdiResetDCEMF(
return 0;
}
HBITMAP
STDCALL
CreateDIBitmap(HDC
hDc, const BITMAPINFOHEADER *Header,
DWORD Init, LPCVOID Bits, const BITMAPINFO *Data,
UINT ColorUse)
{
/* FIMXE we need do more thing in user mode */
return NtGdiCreateDIBitmap(hDc, Header, Init, Bits, Data, ColorUse);
}
/*
* @unimplemented
*/

View File

@@ -135,7 +135,7 @@ CreateDiscardableBitmap(
INT Width,
INT Height)
{
return NtGdiCreateCompatibleBitmap(hDC, Width, Height);
return CreateCompatibleBitmap(hDC, Width, Height);
}

View File

@@ -56,11 +56,9 @@ CreateEllipticRgnIndirect(
const RECT *prc
)
{
if (prc)
{
return NtGdiCreateEllipticRgn(prc->left, prc->top, prc->right, prc->bottom);
}
return NULL;
/* Notes if prc is NULL it will crash on All Windows NT I checked 2000/XP/VISTA */
return NtGdiCreateEllipticRgn(prc->left, prc->top, prc->right, prc->bottom);
}
HRGN