[ros-diffs] [jimtabor] 26442: Reimplement GetStockObject, based on Wine. It is bypassed in the def file. Init support code is not added yet.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Sat Apr 21 00:44:38 CEST 2007


Author: jimtabor
Date: Sat Apr 21 02:44:37 2007
New Revision: 26442

URL: http://svn.reactos.org/svn/reactos?rev=26442&view=rev
Log:
Reimplement GetStockObject, based on Wine. It is bypassed in the def file. Init support code is not added yet.

Modified:
    trunk/reactos/dll/win32/gdi32/include/gdi32p.h
    trunk/reactos/dll/win32/gdi32/objects/dc.c

Modified: trunk/reactos/dll/win32/gdi32/include/gdi32p.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/include/gdi32p.h?rev=26442&r1=26441&r2=26442&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/include/gdi32p.h (original)
+++ trunk/reactos/dll/win32/gdi32/include/gdi32p.h Sat Apr 21 02:44:37 2007
@@ -28,6 +28,10 @@
 
 #define METAFILE_MEMORY 1
 #define METAFILE_DISK   2
+
+#define STOCK_LAST          19
+#define DEFAULT_BITMAP (STOCK_LAST+1)
+#define NB_STOCK_OBJECTS (STOCK_LAST+2)
 
 /* TYPES *********************************************************************/
 

Modified: trunk/reactos/dll/win32/gdi32/objects/dc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/objects/dc.c?rev=26442&r1=26441&r2=26442&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/objects/dc.c (original)
+++ trunk/reactos/dll/win32/gdi32/objects/dc.c Sat Apr 21 02:44:37 2007
@@ -2,6 +2,8 @@
 
 #define NDEBUG
 #include <debug.h>
+
+HGDIOBJ stock_objects[NB_STOCK_OBJECTS]; // temp location.
 
 HDC
 FASTCALL
@@ -577,3 +579,28 @@
 }
 
 
+/*
+ * @implemented
+ */
+HGDIOBJ
+WINAPI
+GetStockObject(
+              INT h
+              )
+{
+  HGDIOBJ Ret = NULL;
+  if ((h < 0) || (h >= NB_STOCK_OBJECTS)) return Ret;
+  Ret = stock_objects[h];
+  if (!Ret)
+  {
+      HGDIOBJ Obj = NtGdiGetStockObject( h );
+
+      if (GdiIsHandleValid(Obj))
+      {
+         stock_objects[h] = Obj;
+         return Obj;
+      }// Returns Null anyway.
+  }
+  return Ret;                    
+}
+




More information about the Ros-diffs mailing list