[LPK] Diverse fixes (#622).
authorBaruch Rutman <peterooch@gmail.com>
Mon, 18 Jun 2018 11:52:57 +0000 (14:52 +0300)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Thu, 26 Jul 2018 22:47:14 +0000 (00:47 +0200)
- Changed wcspy to strsafe function.
- Use GetCharWidthI instead of GetCharWidth32W if dealing with glyph indices.

dll/win32/lpk/lpk.c
dll/win32/lpk/ros_lpk.h

index 656808e..85e2e8f 100644 (file)
@@ -145,7 +145,7 @@ LpkGetCharacterPlacement(
     if (lpResults->lpGlyphs)
     {
         if (lpGlyphs)
-            wcscpy(lpResults->lpGlyphs, lpGlyphs);
+            StringCchCopyW(lpResults->lpGlyphs, cGlyphs, lpGlyphs);
 
         else if (lpResults->lpOutString)
             GetGlyphIndicesW(hdc, lpResults->lpOutString, nSet, lpResults->lpGlyphs, 0);
@@ -154,7 +154,7 @@ LpkGetCharacterPlacement(
     if (lpResults->lpDx)
     {
         /* If glyph shaping was requested */
-        if(dwFlags & GCP_GLYPHSHAPE)
+        if (dwFlags & GCP_GLYPHSHAPE)
         {
             int c;
 
@@ -162,7 +162,7 @@ LpkGetCharacterPlacement(
             {
                 for (i = 0; i < lpResults->nGlyphs; i++)
                 {
-                    if (GetCharWidth32W(hdc, lpResults->lpGlyphs[i], lpResults->lpGlyphs[i], &c))
+                    if (GetCharWidthI(hdc, 0, 1, (WORD *)&lpResults->lpGlyphs[i], &c))
                         lpResults->lpDx[i] = c;
                 }
             }
index d82a449..0fb1fe3 100644 (file)
@@ -17,6 +17,7 @@
 #include <wingdi.h>
 #include <winnls.h>
 #include <usp10.h>
+#include <strsafe.h>
 
 /* FIXME USP10 api that does not have prototype in any include file */
 VOID WINAPI LpkPresent(VOID);