Index: include/psdk/ntgdi.h =================================================================== --- include/psdk/ntgdi.h (revision 69558) +++ include/psdk/ntgdi.h (working copy) @@ -165,7 +165,7 @@ APIENTRY NtGdiGetGlyphIndicesW( _In_ HDC hdc, - _In_reads_opt_(cwc) LPWSTR pwc, + _In_reads_opt_(cwc) LPCWSTR pwc, _In_ INT cwc, _Out_writes_opt_(cwc) LPWORD pgi, _In_ DWORD iMode); Index: win32ss/gdi/gdi32/objects/font.c =================================================================== --- win32ss/gdi/gdi32/objects/font.c (revision 69558) +++ win32ss/gdi/gdi32/objects/font.c (working copy) @@ -460,9 +460,6 @@ if(lpResults->lpOutString) lstrcpynW( lpResults->lpOutString, lpString, nSet ); - if(lpResults->lpGlyphs) - lstrcpynW( lpResults->lpGlyphs, lpString, nSet ); - if(lpResults->lpOrder) { for(i = 0; i < nSet; i++) @@ -495,8 +492,8 @@ lpResults->lpCaretPos[i] = (pos += size.cx); } - /*if(lpResults->lpGlyphs) - NtGdiGetGlyphIndicesW(hdc, lpString, nSet, lpResults->lpGlyphs, 0);*/ + if (lpResults->lpGlyphs) + NtGdiGetGlyphIndicesW(hdc, lpString, nSet, lpResults->lpGlyphs, 0); if (GetTextExtentPoint32W(hdc, lpString, uCount, &size)) ret = MAKELONG(size.cx, size.cy); Index: win32ss/gdi/ntgdi/freetype.c =================================================================== --- win32ss/gdi/ntgdi/freetype.c (revision 69558) +++ win32ss/gdi/ntgdi/freetype.c (working copy) @@ -4457,7 +4457,7 @@ APIENTRY NtGdiGetGlyphIndicesW( _In_ HDC hdc, - _In_reads_opt_(cwc) LPWSTR pwc, + _In_reads_opt_(cwc) LPCWSTR pwc, _In_ INT cwc, _Out_writes_opt_(cwc) LPWORD pgi, _In_ DWORD iMode) @@ -4475,7 +4475,7 @@ PWSTR Buffer = NULL; ULONG Size, pwcSize; PWSTR Safepwc = NULL; - LPWSTR UnSafepwc = pwc; + LPCWSTR UnSafepwc = pwc; LPWORD UnSafepgi = pgi; if ((!UnSafepwc) && (!UnSafepgi)) return cwc;