From 256a4e106045c1f1b1618fb2c0ea72f2f816b54e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Fri, 18 Jun 2010 21:12:29 +0000 Subject: [PATCH] [GDI32] - Use default LOGFONT in EnumFontFamilies. + ~3000 gdi32:font winetests svn path=/branches/reactos-yarotows/; revision=47800 --- dll/win32/gdi32/objects/font.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/dll/win32/gdi32/objects/font.c b/dll/win32/gdi32/objects/font.c index 7ea6a32929e..2090b9ad1a8 100644 --- a/dll/win32/gdi32/objects/font.c +++ b/dll/win32/gdi32/objects/font.c @@ -154,6 +154,7 @@ IntEnumFontFamilies(HDC Dc, LPLOGFONTW LogFont, PVOID EnumProc, LPARAM lParam, int i; ENUMLOGFONTEXA EnumLogFontExA; NEWTEXTMETRICEXA NewTextMetricExA; + LOGFONTW lfW; Info = RtlAllocateHeap(GetProcessHeap(), 0, INITIAL_FAMILY_COUNT * sizeof(FONTFAMILYINFO)); @@ -161,6 +162,15 @@ IntEnumFontFamilies(HDC Dc, LPLOGFONTW LogFont, PVOID EnumProc, LPARAM lParam, { return 0; } + + if (!LogFont) + { + lfW.lfCharSet = DEFAULT_CHARSET; + lfW.lfPitchAndFamily = 0; + lfW.lfFaceName[0] = 0; + LogFont = &lfW; + } + FontFamilyCount = NtGdiGetFontFamilyInfo(Dc, LogFont, Info, INITIAL_FAMILY_COUNT); if (FontFamilyCount < 0) { @@ -464,7 +474,7 @@ NewGetCharacterPlacementW( return 0; } - nSet = uCount; + nSet = uCount; if ( nSet > lpResults->nGlyphs ) nSet = lpResults->nGlyphs; @@ -522,7 +532,7 @@ GetCharWidthFloatW(HDC hdc, iFirstChar, (ULONG)(iLastChar - iFirstChar + 1), (PWCHAR) NULL, - 0, + 0, (PVOID) pxBuffer); } @@ -688,7 +698,7 @@ GetCharWidth32A( wstr[0], (ULONG) count, (PWCHAR) wstr, - GCW_NOFLOAT|GCW_WIN32, + GCW_NOFLOAT|GCW_WIN32, (PVOID) lpBuffer); HeapFree(GetProcessHeap(), 0, str); @@ -772,7 +782,7 @@ GetCharABCWidthsA( return FALSE; } - ret = NtGdiGetCharABCWidthsW( hdc, + ret = NtGdiGetCharABCWidthsW( hdc, wstr[0], (ULONG)count, (PWCHAR)wstr, @@ -890,7 +900,7 @@ GetFontLanguageInfo( if ((Ret == ARABIC_CHARSET) || (Ret == HEBREW_CHARSET)) Ret = (GCP_KASHIDA|GCP_DIACRITIC|GCP_LIGATE|GCP_GLYPHSHAPE|GCP_REORDER); } - Gcp = GetDCDWord(hDc, GdiGetFontLanguageInfo, GCP_ERROR); + Gcp = GetDCDWord(hDc, GdiGetFontLanguageInfo, GCP_ERROR); if ( Gcp == GCP_ERROR) return Gcp; else