[ros-diffs] [greatlrd] 28473: Remove redirect of CreateDIBitmap at 24 to NtGdiCreateDIBitmap at 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

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Thu Aug 23 17:03:13 CEST 2007


Author: greatlrd
Date: Thu Aug 23 19:03:13 2007
New Revision: 28473

URL: http://svn.reactos.org/svn/reactos?rev=28473&view=rev
Log:
Remove redirect of CreateDIBitmap at 24 to NtGdiCreateDIBitmap at 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 

Modified:
    trunk/reactos/dll/win32/gdi32/gdi32.def
    trunk/reactos/dll/win32/gdi32/misc/stubs.c
    trunk/reactos/dll/win32/gdi32/objects/bitmap.c
    trunk/reactos/dll/win32/gdi32/objects/region.c

Modified: trunk/reactos/dll/win32/gdi32/gdi32.def
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/gdi32.def?rev=28473&r1=28472&r2=28473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/gdi32.def (original)
+++ trunk/reactos/dll/win32/gdi32/gdi32.def Thu Aug 23 19:03:13 2007
@@ -56,14 +56,7 @@
 CreateDIBPatternBrush at 8
 CreateDIBPatternBrushPt at 8
 CreateDIBSection at 24
-
-ClearBitmapAttributes at 8
-ClearBrushAttributes at 8
-CopyMetaFileA at 8
-CopyMetaFileW at 8
-CreateBrushIndirect at 4
-CreateDIBSection at 24
-CreateDIBitmap at 24=NtGdiCreateDIBitmap at 24
+CreateDIBitmap at 24
 CreateDiscardableBitmap at 12
 CreateEllipticRgn at 16=NtGdiCreateEllipticRgn at 16
 CreateEllipticRgnIndirect at 4
@@ -73,6 +66,13 @@
 CreateFontIndirectA at 4
 CreateFontIndirectExA at 4
 CreateFontIndirectExW at 4
+
+ClearBitmapAttributes at 8
+ClearBrushAttributes at 8
+CopyMetaFileA at 8
+CopyMetaFileW at 8
+CreateBrushIndirect at 4
+CreateDIBSection at 24
 CreateFontIndirectW at 4
 CreateFontW at 56
 CreateHalftonePalette at 4=NtGdiCreateHalftonePalette at 4

Modified: trunk/reactos/dll/win32/gdi32/misc/stubs.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/misc/stubs.c?rev=28473&r1=28472&r2=28473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/misc/stubs.c (original)
+++ trunk/reactos/dll/win32/gdi32/misc/stubs.c Thu Aug 23 19:03:13 2007
@@ -2432,6 +2432,18 @@
 	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
  */

Modified: trunk/reactos/dll/win32/gdi32/objects/bitmap.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/objects/bitmap.c?rev=28473&r1=28472&r2=28473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/objects/bitmap.c (original)
+++ trunk/reactos/dll/win32/gdi32/objects/bitmap.c Thu Aug 23 19:03:13 2007
@@ -135,7 +135,7 @@
    INT  Width,
    INT  Height)
 {
-   return  NtGdiCreateCompatibleBitmap(hDC, Width, Height);
+   return  CreateCompatibleBitmap(hDC, Width, Height);
 }
 
 

Modified: trunk/reactos/dll/win32/gdi32/objects/region.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/objects/region.c?rev=28473&r1=28472&r2=28473&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/objects/region.c (original)
+++ trunk/reactos/dll/win32/gdi32/objects/region.c Thu Aug 23 19:03:13 2007
@@ -56,11 +56,9 @@
    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




More information about the Ros-diffs mailing list