[ros-diffs] [jimtabor] 45370: [Gdi32] - Miscellaneous implementations and forwards.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Mon Feb 1 16:13:35 CET 2010


Author: jimtabor
Date: Mon Feb  1 16:13:35 2010
New Revision: 45370

URL: http://svn.reactos.org/svn/reactos?rev=45370&view=rev
Log:
[Gdi32]
- Miscellaneous implementations and forwards.

Modified:
    trunk/reactos/dll/win32/gdi32/gdi32.spec
    trunk/reactos/dll/win32/gdi32/misc/stubs.c

Modified: trunk/reactos/dll/win32/gdi32/gdi32.spec
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/gdi32.spec?rev=45370&r1=45369&r2=45370&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/gdi32.spec [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/gdi32/gdi32.spec [iso-8859-1] Mon Feb  1 16:13:35 2010
@@ -605,7 +605,7 @@
 @ stdcall XFORMOBJ_iGetXform(ptr ptr) NtGdiXFORMOBJ_iGetXform
 @ stdcall XLATEOBJ_cGetPalette(ptr long long ptr) NtGdiXLATEOBJ_cGetPalette
 @ stdcall XLATEOBJ_hGetColorTransform(ptr) NtGdiXLATEOBJ_hGetColorTransform
-@ stdcall XLATEOBJ_iXlate(ptr long)
+@ stdcall XLATEOBJ_iXlate(ptr long) NtGdiXLATEOBJ_iXlate
 @ stdcall XLATEOBJ_piVector(ptr)
 @ stdcall bInitSystemAndFontsDirectoriesW(wstr wstr)
 @ stdcall bMakePathNameW(wstr wstr wstr long)

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=45370&r1=45369&r2=45370&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/misc/stubs.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/gdi32/misc/stubs.c [iso-8859-1] Mon Feb  1 16:13:35 2010
@@ -809,15 +809,16 @@
 }
 
 /*
- * @unimplemented
+ * @implemented
  */
 BOOL
 WINAPI
 GdiCleanCacheDC(HDC hdc)
 {
-	UNIMPLEMENTED;
-	SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-	return 0;
+   if (GDI_HANDLE_GET_TYPE(hdc) == GDILoObjType_LO_DC_TYPE)
+      return TRUE;
+   SetLastError(ERROR_INVALID_HANDLE);
+   return FALSE;
 }
 
 /*
@@ -860,7 +861,7 @@
  */
 BOOL
 WINAPI
-GdiDrawStream(HDC dc, ULONG l, VOID *v)
+GdiDrawStream(HDC dc, ULONG l, VOID *v) // See Bug 4784
 {
     UNIMPLEMENTED;
     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -934,15 +935,25 @@
 }
 
 /*
- * @unimplemented
+ * @implemented
  */
 BOOL
 WINAPI
 GdiValidateHandle(HGDIOBJ hobj)
 {
-    UNIMPLEMENTED;
-    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-    return 0;
+  PGDI_TABLE_ENTRY Entry = GdiHandleTable + GDI_HANDLE_GET_INDEX(hobj);
+  if ( (Entry->Type & GDI_ENTRY_BASETYPE_MASK) != 0 &&
+       ( (Entry->Type << GDI_ENTRY_UPPER_SHIFT) & GDI_HANDLE_TYPE_MASK ) == 
+                                                                   GDI_HANDLE_GET_TYPE(hobj) )
+  {
+    HANDLE pid = (HANDLE)((ULONG_PTR)Entry->ProcessId & ~0x1);
+    if(pid == NULL || pid == CurrentProcessId)
+    {
+      return TRUE;
+    }
+  }
+  return FALSE;
+
 }
 
 /*
@@ -1531,18 +1542,6 @@
 /*
  * @unimplemented
  */
-ULONG WINAPI
-XLATEOBJ_iXlate(XLATEOBJ *XlateObj,
-                ULONG Color)
-{
-    UNIMPLEMENTED;
-    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-    return 0;
-}
-
-/*
- * @unimplemented
- */
 ULONG *
 WINAPI
 XLATEOBJ_piVector(XLATEOBJ *XlateObj)
@@ -1566,8 +1565,6 @@
     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return 0;
 }
-
-
 
 /*
  * @unimplemented
@@ -1608,7 +1605,6 @@
     /* FIXME some part need be done in user mode */
     return NtGdiGradientFill(hdc, pVertex, nVertex, pMesh, nMesh, ulMode);
 }
-
 
 /*
  * @implemented




More information about the Ros-diffs mailing list