[LPK] Diverse fixes (#622).

- Changed wcspy to strsafe function.
- Use GetCharWidthI instead of GetCharWidth32W if dealing with glyph indices.
This commit is contained in:
Baruch Rutman
2018-07-27 00:47:14 +02:00
parent 33d3e56cf4
commit 7fe6a14ede
2 changed files with 4 additions and 3 deletions
+3 -3
View 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;
}
}
+1
View 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);