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…
==============================================================================
--- 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…
==============================================================================
--- 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