[ros-diffs] [greatlrd] 28706: implement GetFontAssocStatus. do correct implement of GetFontData, if the lpvBuffer are NULL in user mode, gdi32.dll always send in cbData as 0 to win32k.sys

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Fri Aug 31 16:38:48 CEST 2007


Author: greatlrd
Date: Fri Aug 31 18:38:48 2007
New Revision: 28706

URL: http://svn.reactos.org/svn/reactos?rev=28706&view=rev
Log:
implement GetFontAssocStatus.
do correct implement of GetFontData, if the lpvBuffer are NULL in user mode, gdi32.dll always send in cbData as 0 to win32k.sys

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

Modified: trunk/reactos/dll/win32/gdi32/gdi32.def
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/gdi32.def?rev=28706&r1=28705&r2=28706&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/gdi32.def (original)
+++ trunk/reactos/dll/win32/gdi32/gdi32.def Fri Aug 31 18:38:48 2007
@@ -385,7 +385,7 @@
 GetEnhMetaFilePixelFormat at 12
 GetEnhMetaFileW at 4
 GetFontAssocStatus at 4
-GetFontData at 20=NtGdiGetFontData at 20
+GetFontData at 20
 GetFontLanguageInfo at 4
 GetFontResourceInfoW at 16
 GetFontUnicodeRanges at 8

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=28706&r1=28705&r2=28706&view=diff
==============================================================================
--- trunk/reactos/dll/win32/gdi32/misc/stubs.c (original)
+++ trunk/reactos/dll/win32/gdi32/misc/stubs.c Fri Aug 31 18:38:48 2007
@@ -1689,15 +1689,20 @@
 }
 
 /*
- * @unimplemented
+ * @implemented
  */
 ULONG 
 STDCALL
 GetFontAssocStatus(HDC hdc)
 {
-	UNIMPLEMENTED;
-	SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-	return 0;
+    ULONG retValue = 0;
+
+    if (hdc)
+    {
+        retValue = NtGdiQueryFontAssocInfo(hdc);
+    }
+
+    return retValue;
 }
 
 /*
@@ -2912,3 +2917,23 @@
     /* FIXME some part need be done in user mode */
     return NtGdiGetCharABCWidths(hdc, uFirstChar, uLastChar, lpabc);
 }
+
+
+/*
+ * @implemented
+ *
+ */
+DWORD 
+STDCALL
+GetFontData(HDC hdc,
+            DWORD dwTable,
+            DWORD dwOffset,
+            LPVOID lpvBuffer,
+            DWORD cbData)
+{
+    if (!lpvBuffer)
+    {
+       cbData = 0;
+    }
+    return NtGdiGetFontData(hdc, dwTable, dwOffset, lpvBuffer, cbData);
+}




More information about the Ros-diffs mailing list