Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
---
v2: Keep the continue statement in test_bitmap_font, which is preventing
a test failure on Japanese Windows 10
---
dlls/gdi32/tests/font.c | 445 ++++++++++++----------------------------
1 file changed, 132 insertions(+), 313 deletions(-)
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index 269151a1e1a..03ac72254cc 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -42,19 +42,8 @@ static inline BOOL match_off_by_n(int a, int b, unsigned int n)
static LONG (WINAPI *pGdiGetCharDimensions)(HDC hdc, LPTEXTMETRICW lptm, LONG *height);
static DWORD (WINAPI *pGdiGetCodePage)(HDC hdc);
-static BOOL (WINAPI *pGetCharABCWidthsFloatW)(HDC hdc, UINT first, UINT last, LPABCFLOAT abc);
-static BOOL (WINAPI *pGetCharWidth32W)(HDC hdc, UINT first, UINT last, LPINT buffer);
static BOOL (WINAPI *pGetCharWidthInfo)(HDC hdc, void *);
-static DWORD (WINAPI *pGetFontUnicodeRanges)(HDC hdc, LPGLYPHSET lpgs);
-static DWORD (WINAPI *pGetGlyphIndicesW)(HDC hdc, LPCWSTR lpstr, INT count, LPWORD pgi, DWORD flags);
-static BOOL (WINAPI *pGetTextExtentExPointI)(HDC hdc, const WORD *indices, INT count, INT max_ext,
- LPINT nfit, LPINT dxs, LPSIZE size );
static BOOL (WINAPI *pGdiRealizationInfo)(HDC hdc, DWORD *);
-static HFONT (WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *);
-static HANDLE (WINAPI *pAddFontMemResourceEx)(PVOID, DWORD, PVOID, DWORD *);
-static BOOL (WINAPI *pRemoveFontMemResourceEx)(HANDLE);
-static INT (WINAPI *pAddFontResourceExA)(LPCSTR, DWORD, PVOID);
-static BOOL (WINAPI *pRemoveFontResourceExA)(LPCSTR, DWORD, PVOID);
static BOOL (WINAPI *pGetFontRealizationInfo)(HDC hdc, DWORD *);
static BOOL (WINAPI *pGetFontFileInfo)(DWORD, DWORD, void *, SIZE_T, SIZE_T *);
static BOOL (WINAPI *pGetFontFileData)(DWORD, DWORD, UINT64, void *, DWORD);
@@ -84,18 +73,8 @@ static void init(void)
pGdiGetCharDimensions = (void *)GetProcAddress(hgdi32, "GdiGetCharDimensions");
pGdiGetCodePage = (void *) GetProcAddress(hgdi32,"GdiGetCodePage");
- pGetCharABCWidthsFloatW = (void *)GetProcAddress(hgdi32, "GetCharABCWidthsFloatW");
- pGetCharWidth32W = (void *)GetProcAddress(hgdi32, "GetCharWidth32W");
pGetCharWidthInfo = (void *)GetProcAddress(hgdi32, "GetCharWidthInfo");
- pGetFontUnicodeRanges = (void *)GetProcAddress(hgdi32, "GetFontUnicodeRanges");
- pGetGlyphIndicesW = (void *)GetProcAddress(hgdi32, "GetGlyphIndicesW");
- pGetTextExtentExPointI = (void *)GetProcAddress(hgdi32, "GetTextExtentExPointI");
pGdiRealizationInfo = (void *)GetProcAddress(hgdi32, "GdiRealizationInfo");
- pCreateFontIndirectExA = (void *)GetProcAddress(hgdi32, "CreateFontIndirectExA");
- pAddFontMemResourceEx = (void *)GetProcAddress(hgdi32, "AddFontMemResourceEx");
- pRemoveFontMemResourceEx = (void *)GetProcAddress(hgdi32, "RemoveFontMemResourceEx");
- pAddFontResourceExA = (void *)GetProcAddress(hgdi32, "AddFontResourceExA");
- pRemoveFontResourceExA = (void *)GetProcAddress(hgdi32, "RemoveFontResourceExA");
pGetFontRealizationInfo = (void *)GetProcAddress(hgdi32, "GetFontRealizationInfo");
pGetFontFileInfo = (void *)GetProcAddress(hgdi32, "GetFontFileInfo");
pGetFontFileData = (void *)GetProcAddress(hgdi32, "GetFontFileData");
@@ -188,32 +167,18 @@ static BOOL write_ttf_file(const char *fontname, char *tmp_name)
static void check_font(const char* test, const LOGFONTA* lf, HFONT hfont)
{
LOGFONTA getobj_lf;
- int ret, minlen = 0;
+ int ret;
if (!hfont)
return;
ret = GetObjectA(hfont, sizeof(getobj_lf), &getobj_lf);
- /* NT4 tries to be clever and only returns the minimum length */
- while (lf->lfFaceName[minlen] && minlen < LF_FACESIZE-1)
- minlen++;
- minlen += FIELD_OFFSET(LOGFONTA, lfFaceName) + 1;
- ok(ret == sizeof(LOGFONTA) || ret == minlen, "%s: GetObject returned %d\n", test, ret);
- ok(lf->lfHeight == getobj_lf.lfHeight ||
- broken((SHORT)lf->lfHeight == getobj_lf.lfHeight), /* win9x */
- "lfHeight: expect %08x got %08x\n", lf->lfHeight, getobj_lf.lfHeight);
- ok(lf->lfWidth == getobj_lf.lfWidth ||
- broken((SHORT)lf->lfWidth == getobj_lf.lfWidth), /* win9x */
- "lfWidth: expect %08x got %08x\n", lf->lfWidth, getobj_lf.lfWidth);
- ok(lf->lfEscapement == getobj_lf.lfEscapement ||
- broken((SHORT)lf->lfEscapement == getobj_lf.lfEscapement), /* win9x */
- "lfEscapement: expect %08x got %08x\n", lf->lfEscapement, getobj_lf.lfEscapement);
- ok(lf->lfOrientation == getobj_lf.lfOrientation ||
- broken((SHORT)lf->lfOrientation == getobj_lf.lfOrientation), /* win9x */
- "lfOrientation: expect %08x got %08x\n", lf->lfOrientation, getobj_lf.lfOrientation);
- ok(lf->lfWeight == getobj_lf.lfWeight ||
- broken((SHORT)lf->lfWeight == getobj_lf.lfWeight), /* win9x */
- "lfWeight: expect %08x got %08x\n", lf->lfWeight, getobj_lf.lfWeight);
+ ok(ret == sizeof(LOGFONTA), "%s: GetObject returned %d\n", test, ret);
+ ok(lf->lfHeight == getobj_lf.lfHeight, "lfHeight: expect %08x got %08x\n", lf->lfHeight, getobj_lf.lfHeight);
+ ok(lf->lfWidth == getobj_lf.lfWidth, "lfWidth: expect %08x got %08x\n", lf->lfWidth, getobj_lf.lfWidth);
+ ok(lf->lfEscapement == getobj_lf.lfEscapement, "lfEscapement: expect %08x got %08x\n", lf->lfEscapement, getobj_lf.lfEscapement);
+ ok(lf->lfOrientation == getobj_lf.lfOrientation, "lfOrientation: expect %08x got %08x\n", lf->lfOrientation, getobj_lf.lfOrientation);
+ ok(lf->lfWeight == getobj_lf.lfWeight, "lfWeight: expect %08x got %08x\n", lf->lfWeight, getobj_lf.lfWeight);
ok(lf->lfItalic == getobj_lf.lfItalic, "lfItalic: expect %02x got %02x\n", lf->lfItalic, getobj_lf.lfItalic);
ok(lf->lfUnderline == getobj_lf.lfUnderline, "lfUnderline: expect %02x got %02x\n", lf->lfUnderline, getobj_lf.lfUnderline);
ok(lf->lfStrikeOut == getobj_lf.lfStrikeOut, "lfStrikeOut: expect %02x got %02x\n", lf->lfStrikeOut, getobj_lf.lfStrikeOut);
@@ -222,9 +187,7 @@ static void check_font(const char* test, const LOGFONTA* lf, HFONT hfont)
ok(lf->lfClipPrecision == getobj_lf.lfClipPrecision, "lfClipPrecision: expect %02x got %02x\n", lf->lfClipPrecision, getobj_lf.lfClipPrecision);
ok(lf->lfQuality == getobj_lf.lfQuality, "lfQuality: expect %02x got %02x\n", lf->lfQuality, getobj_lf.lfQuality);
ok(lf->lfPitchAndFamily == getobj_lf.lfPitchAndFamily, "lfPitchAndFamily: expect %02x got %02x\n", lf->lfPitchAndFamily, getobj_lf.lfPitchAndFamily);
- ok(!lstrcmpA(lf->lfFaceName, getobj_lf.lfFaceName) ||
- broken(!memcmp(lf->lfFaceName, getobj_lf.lfFaceName, LF_FACESIZE-1)), /* win9x doesn't ensure '\0' termination */
- "%s: font names don't match: %s != %s\n", test, lf->lfFaceName, getobj_lf.lfFaceName);
+ ok(!lstrcmpA(lf->lfFaceName, getobj_lf.lfFaceName), "%s: font names don't match: %s != %s\n", test, lf->lfFaceName, getobj_lf.lfFaceName);
}
static HFONT create_font(const char* test, const LOGFONTA* lf)
@@ -325,14 +288,12 @@ static void test_font_metrics(const char *context,
{
otm.otmSize = sizeof(otm) / 2;
ret = GetOutlineTextMetricsA(hdc, otm.otmSize, &otm);
- ok(ret == sizeof(otm)/2 /* XP */ ||
- ret == 1 /* Win9x */, "expected sizeof(otm)/2, got %u\n", ret);
+ ok(ret == sizeof(otm)/2, "expected sizeof(otm)/2, got %u\n", ret);
memset(&otm, 0x1, sizeof(otm));
otm.otmSize = sizeof(otm);
ret = GetOutlineTextMetricsA(hdc, otm.otmSize, &otm);
- ok(ret == sizeof(otm) /* XP */ ||
- ret == 1 /* Win9x */, "expected sizeof(otm), got %u\n", ret);
+ ok(ret == sizeof(otm), "expected sizeof(otm), got %u\n", ret);
memset(&tm, 0x2, sizeof(tm));
ret = GetTextMetricsA(hdc, &tm);
@@ -1139,7 +1100,7 @@ static void ABCWidths_helper(const char* description, HDC hdc, WORD *glyphs, con
ok(abc->abcA * base_abcw->abcA >= 0, "%s: abcA's sign should be unchanged\n", description);
ok(abc->abcC * base_abcw->abcC >= 0, "%s: abcC's sign should be unchanged\n", description);
- ret = pGetCharABCWidthsFloatW(hdc, 'i', 'i', abcf);
+ ret = GetCharABCWidthsFloatW(hdc, 'i', 'i', abcf);
ok(ret, "%s: GetCharABCWidthsFloatW should have succeeded\n", description);
ok (abcf->abcfB > 0.0, "%s: abcfB should be positive\n", description);
ok(abcf->abcfA * base_abcf->abcfA >= 0.0, "%s: abcfA's sign should be unchanged\n", description);
@@ -1198,12 +1159,6 @@ static void test_GetCharABCWidths(void)
};
UINT i;
- if (!pGetCharABCWidthsFloatW)
- {
- win_skip("GetCharABCWidthsFloatW is not available on this platform\n");
- return;
- }
-
memset(&lf, 0, sizeof(lf));
strcpy(lf.lfFaceName, "System");
lf.lfHeight = 20;
@@ -1212,7 +1167,7 @@ static void test_GetCharABCWidths(void)
hdc = GetDC(0);
hfont = SelectObject(hdc, hfont);
- nb = pGetGlyphIndicesW(hdc, L"i", 1, glyphs, 0);
+ nb = GetGlyphIndicesW(hdc, L"i", 1, glyphs, 0);
ok(nb == 1, "GetGlyphIndicesW should have returned 1\n");
ret = GetCharABCWidthsI(NULL, 0, 1, glyphs, abc);
@@ -1233,13 +1188,13 @@ static void test_GetCharABCWidths(void)
ret = GetCharABCWidthsW(hdc, 'a', 'a', abc);
ok(!ret, "GetCharABCWidthsW should have failed\n");
- ret = pGetCharABCWidthsFloatW(NULL, 'a', 'a', abcf);
+ ret = GetCharABCWidthsFloatW(NULL, 'a', 'a', abcf);
ok(!ret, "GetCharABCWidthsFloatW should have failed\n");
- ret = pGetCharABCWidthsFloatW(hdc, 'a', 'a', NULL);
+ ret = GetCharABCWidthsFloatW(hdc, 'a', 'a', NULL);
ok(!ret, "GetCharABCWidthsFloatW should have failed\n");
- ret = pGetCharABCWidthsFloatW(hdc, 'a', 'a', abcf);
+ ret = GetCharABCWidthsFloatW(hdc, 'a', 'a', abcf);
ok(ret, "GetCharABCWidthsFloatW should have succeeded\n");
hfont = SelectObject(hdc, hfont);
@@ -1303,7 +1258,7 @@ static void test_GetCharABCWidths(void)
/* test empty glyph's metrics */
hfont = SelectObject(hdc, hfont);
- ret = pGetCharABCWidthsFloatW(hdc, ' ', ' ', abcf);
+ ret = GetCharABCWidthsFloatW(hdc, ' ', ' ', abcf);
ok(ret, "GetCharABCWidthsFloatW should have succeeded\n");
ok(abcf[0].abcfB == 1.0, "got %f\n", abcf[0].abcfB);
ret = GetCharABCWidthsW(hdc, ' ', ' ', abcw);
@@ -1393,14 +1348,14 @@ static void test_GetCharABCWidths(void)
SetMapMode(hdc, MM_ANISOTROPIC);
SelectObject(hdc, hfont);
- nb = pGetGlyphIndicesW(hdc, L"i", 1, glyphs, 0);
+ nb = GetGlyphIndicesW(hdc, L"i", 1, glyphs, 0);
ok(nb == 1, "GetGlyphIndicesW should have returned 1\n");
ret = GetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
ok(ret, "GetCharABCWidthsI should have succeeded\n");
ret = GetCharABCWidthsW(hdc, 'i', 'i', abcw);
ok(ret, "GetCharABCWidthsW should have succeeded\n");
- ret = pGetCharABCWidthsFloatW(hdc, 'i', 'i', abcf);
+ ret = GetCharABCWidthsFloatW(hdc, 'i', 'i', abcf);
ok(ret, "GetCharABCWidthsFloatW should have succeeded\n");
ABCWidths_helper("LTR", hdc, glyphs, abc, abcw, abcf);
@@ -1477,17 +1432,6 @@ static void test_text_extents(void)
ok(ret, "got %d\n", ret);
ok(sz.cx == 0 && sz.cy == 0, "cx %d, cy %d\n", sz.cx, sz.cy);
- SetLastError(0xdeadbeef);
- GetTextExtentExPointW(hdc, wt, 1, 1, &fit1, &fit2, &sz1);
- if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
- {
- win_skip("Skipping remainder of text extents test on a Win9x platform\n");
- hfont = SelectObject(hdc, hfont);
- DeleteObject(hfont);
- ReleaseDC(0, hdc);
- return;
- }
-
memset(&sz, 0xcc, sizeof(sz));
ret = GetTextExtentPointW(hdc, wt, 0, &sz);
ok(ret, "got %d\n", ret);
@@ -1541,12 +1485,8 @@ static void test_text_extents(void)
/* max_extent = 0 succeeds and returns zero */
fit1 = fit2 = -215;
ret = GetTextExtentExPointA(hdc, NULL, 0, 0, &fit1, NULL, &sz);
- ok(ret == TRUE ||
- broken(ret == FALSE), /* NT4, 2k */
- "got %d\n", ret);
- ok(fit1 == 0 ||
- broken(fit1 == -215), /* NT4, 2k */
- "fit = %d\n", fit1);
+ ok(ret == TRUE, "got %d\n", ret);
+ ok(fit1 == 0, "fit = %d\n", fit1);
ret = GetTextExtentExPointW(hdc, NULL, 0, 0, &fit2, NULL, &sz1);
ok(ret == TRUE, "got %d\n", ret);
ok(fit2 == 0, "fit = %d\n", fit2);
@@ -1653,11 +1593,6 @@ static void test_GetGlyphIndices(void)
void *font;
char ttf_name[MAX_PATH];
- if (!pGetGlyphIndicesW) {
- win_skip("GetGlyphIndicesW not available on platform\n");
- return;
- }
-
hdc = GetDC(0);
memset(&lf, 0, sizeof(lf));
@@ -1672,11 +1607,11 @@ static void test_GetGlyphIndices(void)
if (textm.tmCharSet == ANSI_CHARSET)
{
flags |= GGI_MARK_NONEXISTING_GLYPHS;
- charcount = pGetGlyphIndicesW(hdc, testtext, (sizeof(testtext)/2)-1, glyphs, flags);
+ charcount = GetGlyphIndicesW(hdc, testtext, (sizeof(testtext)/2)-1, glyphs, flags);
ok(charcount == 5, "GetGlyphIndicesW count of glyphs should = 5 not %d\n", charcount);
ok((glyphs[4] == 0x001f || glyphs[4] == 0xffff /* Vista */), "GetGlyphIndicesW should have returned a nonexistent char not %04x\n", glyphs[4]);
flags = 0;
- charcount = pGetGlyphIndicesW(hdc, testtext, (sizeof(testtext)/2)-1, glyphs, flags);
+ charcount = GetGlyphIndicesW(hdc, testtext, (sizeof(testtext)/2)-1, glyphs, flags);
ok(charcount == 5, "GetGlyphIndicesW count of glyphs should = 5 not %d\n", charcount);
ok(glyphs[4] == textm.tmDefaultChar || glyphs[4] == 0x20 /* CJK Windows */,
"GetGlyphIndicesW should have returned a %04x not %04x\n", textm.tmDefaultChar, glyphs[4]);
@@ -1724,12 +1659,12 @@ static void test_GetGlyphIndices(void)
hOldFont = SelectObject(hdc, hfont);
ok(GetTextMetricsA(hdc, &textm), "GetTextMetric failed\n");
flags |= GGI_MARK_NONEXISTING_GLYPHS;
- charcount = pGetGlyphIndicesW(hdc, testtext, (sizeof(testtext)/2)-1, glyphs, flags);
+ charcount = GetGlyphIndicesW(hdc, testtext, (sizeof(testtext)/2)-1, glyphs, flags);
ok(charcount == 5, "GetGlyphIndicesW count of glyphs should = 5 not %d\n", charcount);
ok(glyphs[4] == 0xffff, "GetGlyphIndicesW should have returned 0xffff char not %04x\n", glyphs[4]);
flags = 0;
testtext[0] = textm.tmDefaultChar;
- charcount = pGetGlyphIndicesW(hdc, testtext, (sizeof(testtext)/2)-1, glyphs, flags);
+ charcount = GetGlyphIndicesW(hdc, testtext, (sizeof(testtext)/2)-1, glyphs, flags);
ok(charcount == 5, "GetGlyphIndicesW count of glyphs should = 5 not %d\n", charcount);
ok(glyphs[0] == 0, "GetGlyphIndicesW for tmDefaultChar should be 0 not %04x\n", glyphs[0]);
ok(glyphs[4] == 0, "GetGlyphIndicesW should have returned 0 not %04x\n", glyphs[4]);
@@ -1740,7 +1675,7 @@ static void test_GetGlyphIndices(void)
font = load_font(ttf_name, &font_size);
ok(font != NULL, "Failed to map font file.\n");
num_fonts = 0;
- rsrc = pAddFontMemResourceEx(font, font_size, NULL, &num_fonts);
+ rsrc = AddFontMemResourceEx(font, font_size, NULL, &num_fonts);
ok(ret != 0, "Failed to add resource, %d.\n", GetLastError());
ok(num_fonts == 1, "Unexpected number of fonts %u.\n", num_fonts);
@@ -1752,7 +1687,7 @@ static void test_GetGlyphIndices(void)
hOldFont = SelectObject(hdc, hfont);
ok(GetTextMetricsA(hdc, &textm), "GetTextMetric failed\n");
testtext[0] = 'T';
- charcount = pGetGlyphIndicesW(hdc, testtext, (sizeof(testtext)/2)-1, glyphs, flags);
+ charcount = GetGlyphIndicesW(hdc, testtext, (sizeof(testtext)/2)-1, glyphs, flags);
ok(charcount == 5, "GetGlyphIndicesW count of glyphs should = 5 not %d\n", charcount);
ok(glyphs[0] == 0, "GetGlyphIndicesW for tmDefaultChar should be 0 not %04x\n", glyphs[0]);
ok(glyphs[4] == 0, "GetGlyphIndicesW should have returned 0 not %04x\n", glyphs[4]);
@@ -1760,7 +1695,7 @@ static void test_GetGlyphIndices(void)
ReleaseDC(0, hdc);
- ret = pRemoveFontMemResourceEx(rsrc);
+ ret = RemoveFontMemResourceEx(rsrc);
ok(ret, "RemoveFontMemResourceEx error %d\n", GetLastError());
free_font(font);
ret = DeleteFileA(ttf_name);
@@ -1853,18 +1788,6 @@ static void test_GetKerningPairs(void)
hdc = GetDC(0);
- /* GetKerningPairsA maps unicode set of kerning pairs to current code page
- * which may render this test unusable, so we're trying to avoid that.
- */
- SetLastError(0xdeadbeef);
- GetKerningPairsW(hdc, 0, NULL);
- if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
- {
- win_skip("Skipping the GetKerningPairs test on a Win9x platform\n");
- ReleaseDC(0, hdc);
- return;
- }
-
for (i = 0; i < ARRAY_SIZE(kd); i++)
{
OUTLINETEXTMETRICW otm;
@@ -1885,7 +1808,6 @@ static void test_GetKerningPairs(void)
hfont_old = SelectObject(hdc, hfont);
SetLastError(0xdeadbeef);
- otm.otmSize = sizeof(otm); /* just in case for Win9x compatibility */
uiRet = GetOutlineTextMetricsW(hdc, sizeof(otm), &otm);
ok(uiRet == sizeof(otm), "GetOutlineTextMetricsW error %d\n", GetLastError());
@@ -2174,12 +2096,6 @@ static void test_height_selection_vdmx( HDC hdc )
void *res, *copy;
BOOL ret;
- if (!pAddFontResourceExA)
- {
- win_skip("AddFontResourceExA unavailable\n");
- return;
- }
-
for (i = 0; i < ARRAY_SIZE(data); i++)
{
res = get_res_data( "wine_vdmx.ttf", &size );
@@ -2197,13 +2113,13 @@ static void test_height_selection_vdmx( HDC hdc )
HeapFree( GetProcessHeap(), 0, copy );
ok( !is_truetype_font_installed("wine_vdmx"), "Already installed\n" );
- num = pAddFontResourceExA( ttf_name, FR_PRIVATE, 0 );
+ num = AddFontResourceExA( ttf_name, FR_PRIVATE, 0 );
if (!num) win_skip("Unable to add ttf font resource\n");
else
{
ok( is_truetype_font_installed("wine_vdmx"), "Not installed\n" );
test_height( hdc, data[i].fd );
- pRemoveFontResourceExA( ttf_name, FR_PRIVATE, 0 );
+ RemoveFontResourceExA( ttf_name, FR_PRIVATE, 0 );
}
ret = DeleteFileA( ttf_name );
ok(ret || broken(!ret && GetLastError() == ERROR_ACCESS_DENIED),
@@ -2329,49 +2245,33 @@ static void test_GetOutlineTextMetrics(void)
memset(otm, 0xAA, otm_size);
SetLastError(0xdeadbeef);
- otm->otmSize = sizeof(*otm); /* just in case for Win9x compatibility */
+ otm->otmSize = sizeof(*otm);
ret = GetOutlineTextMetricsA(hdc, otm->otmSize, otm);
- ok(ret == 1 /* Win9x */ ||
- ret == otm->otmSize /* XP*/,
- "expected %u, got %u, error %d\n", otm->otmSize, ret, GetLastError());
- if (ret != 1) /* Win9x doesn't care about pointing beyond of the buffer */
- {
- ok(otm->otmpFamilyName == NULL, "expected NULL got %p\n", otm->otmpFamilyName);
- ok(otm->otmpFaceName == NULL, "expected NULL got %p\n", otm->otmpFaceName);
- ok(otm->otmpStyleName == NULL, "expected NULL got %p\n", otm->otmpStyleName);
- ok(otm->otmpFullName == NULL, "expected NULL got %p\n", otm->otmpFullName);
- }
+ ok(ret == otm->otmSize, "expected %u, got %u, error %d\n", otm->otmSize, ret, GetLastError());
+ ok(otm->otmpFamilyName == NULL, "expected NULL got %p\n", otm->otmpFamilyName);
+ ok(otm->otmpFaceName == NULL, "expected NULL got %p\n", otm->otmpFaceName);
+ ok(otm->otmpStyleName == NULL, "expected NULL got %p\n", otm->otmpStyleName);
+ ok(otm->otmpFullName == NULL, "expected NULL got %p\n", otm->otmpFullName);
memset(otm, 0xAA, otm_size);
SetLastError(0xdeadbeef);
- otm->otmSize = otm_size; /* just in case for Win9x compatibility */
ret = GetOutlineTextMetricsA(hdc, otm->otmSize, otm);
- ok(ret == 1 /* Win9x */ ||
- ret == otm->otmSize /* XP*/,
- "expected %u, got %u, error %d\n", otm->otmSize, ret, GetLastError());
- if (ret != 1) /* Win9x doesn't care about pointing beyond of the buffer */
- {
- ok(otm->otmpFamilyName != NULL, "expected not NULL got %p\n", otm->otmpFamilyName);
- ok(otm->otmpFaceName != NULL, "expected not NULL got %p\n", otm->otmpFaceName);
- ok(otm->otmpStyleName != NULL, "expected not NULL got %p\n", otm->otmpStyleName);
- ok(otm->otmpFullName != NULL, "expected not NULL got %p\n", otm->otmpFullName);
- }
+ ok(ret == otm->otmSize, "expected %u, got %u, error %d\n", otm->otmSize, ret, GetLastError());
+ ok(otm->otmpFamilyName != NULL, "expected not NULL got %p\n", otm->otmpFamilyName);
+ ok(otm->otmpFaceName != NULL, "expected not NULL got %p\n", otm->otmpFaceName);
+ ok(otm->otmpStyleName != NULL, "expected not NULL got %p\n", otm->otmpStyleName);
+ ok(otm->otmpFullName != NULL, "expected not NULL got %p\n", otm->otmpFullName);
/* ask about truncated data */
memset(otm, 0xAA, otm_size);
memset(&unset_ptr, 0xAA, sizeof(unset_ptr));
SetLastError(0xdeadbeef);
- otm->otmSize = sizeof(*otm) - sizeof(LPSTR); /* just in case for Win9x compatibility */
+ otm->otmSize = sizeof(*otm) - sizeof(char*);
ret = GetOutlineTextMetricsA(hdc, otm->otmSize, otm);
- ok(ret == 1 /* Win9x */ ||
- ret == otm->otmSize /* XP*/,
- "expected %u, got %u, error %d\n", otm->otmSize, ret, GetLastError());
- if (ret != 1) /* Win9x doesn't care about pointing beyond of the buffer */
- {
- ok(otm->otmpFamilyName == NULL, "expected NULL got %p\n", otm->otmpFamilyName);
- ok(otm->otmpFaceName == NULL, "expected NULL got %p\n", otm->otmpFaceName);
- ok(otm->otmpStyleName == NULL, "expected NULL got %p\n", otm->otmpStyleName);
- }
+ ok(ret == otm->otmSize, "expected %u, got %u, error %d\n", otm->otmSize, ret, GetLastError());
+ ok(otm->otmpFamilyName == NULL, "expected NULL got %p\n", otm->otmpFamilyName);
+ ok(otm->otmpFaceName == NULL, "expected NULL got %p\n", otm->otmpFaceName);
+ ok(otm->otmpStyleName == NULL, "expected NULL got %p\n", otm->otmpStyleName);
ok(otm->otmpFullName == unset_ptr, "expected %p got %p\n", unset_ptr, otm->otmpFullName);
/* check handling of NULL pointer */
@@ -2505,7 +2405,6 @@ static void test_SetTextJustification(void)
testJustification("default", hdc, testText, &clientArea);
- if (!pGetTextExtentExPointI) goto done;
GetGlyphIndicesA( hdc, "A ", 2, indices, 0 );
SetTextJustification(hdc, 0, 0);
@@ -2530,9 +2429,9 @@ static void test_SetTextJustification(void)
size.cx = size.cy = 1234;
GetTextExtentPoint32A(hdc, " ", 0, &size);
ok( size.cx == 0 && size.cy == 0, "wrong size %d,%d\n", size.cx, size.cy );
- pGetTextExtentExPointI(hdc, indices, 2, -1, NULL, NULL, &expect);
+ GetTextExtentExPointI(hdc, indices, 2, -1, NULL, NULL, &expect);
SetTextJustification(hdc, 5, 1);
- pGetTextExtentExPointI(hdc, indices, 2, -1, NULL, NULL, &size);
+ GetTextExtentExPointI(hdc, indices, 2, -1, NULL, NULL, &size);
ok( size.cx == expect.cx + 5, "wrong size %d/%d\n", size.cx, expect.cx );
SetTextJustification(hdc, 0, 0);
@@ -2550,11 +2449,11 @@ static void test_SetTextJustification(void)
ok( size.cx == expect.cx + i, "wrong size %d/%d+%d\n", size.cx, expect.cx, i );
}
SetTextCharacterExtra(hdc, 0);
- pGetTextExtentExPointI(hdc, indices, 1, -1, NULL, NULL, &expect);
+ GetTextExtentExPointI(hdc, indices, 1, -1, NULL, NULL, &expect);
for (i = 0; i < 10; i++)
{
SetTextCharacterExtra(hdc, i);
- pGetTextExtentExPointI(hdc, indices, 1, -1, NULL, NULL, &size);
+ GetTextExtentExPointI(hdc, indices, 1, -1, NULL, NULL, &size);
ok( size.cx == expect.cx + i, "wrong size %d/%d+%d\n", size.cx, expect.cx, i );
}
SetTextCharacterExtra(hdc, 0);
@@ -2572,7 +2471,6 @@ static void test_SetTextJustification(void)
ok( size.cx == expect.cx + i, "wrong size %d/%d+%d\n", size.cx, expect.cx, i );
}
-done:
DeleteObject(hfont);
ReleaseDC(hwnd, hdc);
DestroyWindow(hwnd);
@@ -2647,7 +2545,7 @@ static BOOL get_glyph_indices(INT charset, UINT code_page, WORD *idx, UINT count
MultiByteToWideChar(code_page, 0, ansi_buf, count, unicode_buf, count);
SetLastError(0xdeadbeef);
- ret = pGetGlyphIndicesW(hdc, unicode_buf, count, idx, 0);
+ ret = GetGlyphIndicesW(hdc, unicode_buf, count, idx, 0);
ok(ret == count, "GetGlyphIndicesW expected %d got %d, error %u\n",
count, ret, GetLastError());
}
@@ -2686,12 +2584,6 @@ static void test_font_charset(void)
};
int i;
- if (!pGetGlyphIndicesW)
- {
- win_skip("Skipping the font charset test on a Win9x platform\n");
- return;
- }
-
if (!is_font_installed("Arial"))
{
skip("Arial is not installed\n");
@@ -2825,12 +2717,6 @@ static void test_GetFontUnicodeRanges(void)
DWORD size;
GLYPHSET *gs;
- if (!pGetFontUnicodeRanges)
- {
- win_skip("GetFontUnicodeRanges not available before W2K\n");
- return;
- }
-
memset(&lf, 0, sizeof(lf));
lstrcpyA(lf.lfFaceName, "Arial");
hfont = create_font("Arial", &lf);
@@ -2838,15 +2724,15 @@ static void test_GetFontUnicodeRanges(void)
hdc = GetDC(0);
hfont_old = SelectObject(hdc, hfont);
- size = pGetFontUnicodeRanges(NULL, NULL);
+ size = GetFontUnicodeRanges(NULL, NULL);
ok(!size, "GetFontUnicodeRanges succeeded unexpectedly\n");
- size = pGetFontUnicodeRanges(hdc, NULL);
+ size = GetFontUnicodeRanges(hdc, NULL);
ok(size, "GetFontUnicodeRanges failed unexpectedly\n");
gs = heap_alloc_zero(size);
- size = pGetFontUnicodeRanges(hdc, gs);
+ size = GetFontUnicodeRanges(hdc, gs);
ok(size, "GetFontUnicodeRanges failed\n");
ok(gs->cRanges, "Unexpected ranges count.\n");
@@ -3016,9 +2902,7 @@ static void test_EnumFontFamilies(const char *font_name, INT font_charset)
ok(efdw.total > 0, "fonts enumerated: NULL\n");
ok(ansi_charset > 0, "NULL family should enumerate ANSI_CHARSET\n");
ok(symbol_charset > 0, "NULL family should enumerate SYMBOL_CHARSET\n");
- ok(russian_charset > 0 ||
- broken(russian_charset == 0), /* NT4 */
- "NULL family should enumerate RUSSIAN_CHARSET\n");
+ ok(russian_charset > 0, "NULL family should enumerate RUSSIAN_CHARSET\n");
}
efdw.total = 0;
@@ -4005,12 +3889,10 @@ static void test_text_metrics(const LOGFONTA *lf, const NEWTEXTMETRICA *ntm)
/* Wine currently uses SYMBOL_CHARSET to identify whether the ANSI metrics need special handling */
todo_wine_if(cmap_type != cmap_ms_symbol && tmA.tmCharSet == SYMBOL_CHARSET && expect_first_A != 0x1e)
- ok(tmA.tmFirstChar == expect_first_A ||
- tmA.tmFirstChar == expect_first_A + 1 /* win9x */,
+ ok(tmA.tmFirstChar == expect_first_A,
"A: tmFirstChar for %s got %02x expected %02x\n", font_name, tmA.tmFirstChar, expect_first_A);
if (pGdiGetCodePage == NULL || ! IsDBCSLeadByteEx(pGdiGetCodePage(hdc), tmA.tmLastChar))
- ok(tmA.tmLastChar == expect_last_A ||
- tmA.tmLastChar == 0xff /* win9x */,
+ todo_wine_if(expect_last_A != 0 && expect_last_A != 0xff) ok(tmA.tmLastChar == expect_last_A,
"A: tmLastChar for %s got %02x expected %02x\n", font_name, tmA.tmLastChar, expect_last_A);
else
skip("tmLastChar is DBCS lead byte\n");
@@ -4189,9 +4071,9 @@ static void test_nonexistent_font(void)
for (i = 0; i < ARRAY_SIZE(shell_subst); i++)
{
ret = is_font_installed(shell_subst[i].name);
- ok(ret || broken(!ret) /* win2000 */, "%s should be enumerated\n", shell_subst[i].name);
+ ok(ret, "%s should be enumerated\n", shell_subst[i].name);
ret = is_truetype_font_installed(shell_subst[i].name);
- ok(ret || broken(!ret) /* win2000 */, "%s should be enumerated\n", shell_subst[i].name);
+ ok(ret, "%s should be enumerated\n", shell_subst[i].name);
memset(&lf, 0, sizeof(lf));
lf.lfHeight = -13;
@@ -4250,7 +4132,6 @@ static void test_nonexistent_font(void)
GetTextFaceA(hdc, sizeof(buf), buf);
todo_wine /* Wine uses Arial for all substitutions */
ok(!lstrcmpiA(buf, "Nonexistent font") /* XP, Vista */ ||
- !lstrcmpiA(buf, "MS Serif") || /* Win9x */
!lstrcmpiA(buf, "MS Sans Serif"), /* win2k3 */
"Got %s\n", buf);
cs = GetTextCharset(hdc);
@@ -4264,8 +4145,7 @@ todo_wine /* Wine uses Arial for all substitutions */
hfont = CreateFontIndirectA(&lf);
hfont = SelectObject(hdc, hfont);
GetTextFaceA(hdc, sizeof(buf), buf);
- ok(!lstrcmpiA(buf, "Arial") /* XP, Vista */ ||
- !lstrcmpiA(buf, "Times New Roman") /* Win9x */, "Got %s\n", buf);
+ ok(!lstrcmpiA(buf, "Arial"), "Got %s\n", buf);
cs = GetTextCharset(hdc);
ok(cs == ANSI_CHARSET, "expected ANSI_CHARSET, got %d\n", cs);
DeleteObject(SelectObject(hdc, hfont));
@@ -4286,12 +4166,10 @@ todo_wine /* Wine uses Arial for all substitutions */
{
ret = is_font_installed(font_subst[i].name);
todo_wine
- ok(ret || broken(!ret && !i) /* win2000 doesn't have Times New Roman Baltic substitution */,
- "%s should be enumerated\n", font_subst[i].name);
+ ok(ret, "%s should be enumerated\n", font_subst[i].name);
ret = is_truetype_font_installed(font_subst[i].name);
todo_wine
- ok(ret || broken(!ret && !i) /* win2000 doesn't have Times New Roman Baltic substitution */,
- "%s should be enumerated\n", font_subst[i].name);
+ ok(ret, "%s should be enumerated\n", font_subst[i].name);
memset(&lf, 0, sizeof(lf));
lf.lfHeight = -13;
@@ -4310,8 +4188,7 @@ todo_wine
{
ok(cs == ANSI_CHARSET, "expected ANSI_CHARSET, got %d for font %s\n", cs, font_subst[i].name);
GetTextFaceA(hdc, sizeof(buf), buf);
- ok(!lstrcmpiA(buf, "Arial") /* XP, Vista */ ||
- !lstrcmpiA(buf, "Times New Roman") /* Win9x */, "got %s for font %s\n", buf, font_subst[i].name);
+ ok(!lstrcmpiA(buf, "Arial"), "got %s for font %s\n", buf, font_subst[i].name);
}
DeleteObject(SelectObject(hdc, hfont));
@@ -4324,7 +4201,6 @@ todo_wine
GetTextFaceA(hdc, sizeof(buf), buf);
ok(!lstrcmpiA(buf, "Arial") /* Wine */ ||
!lstrcmpiA(buf, font_subst[i].name) /* XP, Vista */ ||
- !lstrcmpiA(buf, "MS Serif") /* Win9x */ ||
!lstrcmpiA(buf, "MS Sans Serif"), /* win2k3 */
"got %s for font %s\n", buf, font_subst[i].name);
cs = GetTextCharset(hdc);
@@ -4545,9 +4421,7 @@ static void test_GetTextFace(void)
ok(bufA[0] == faceA[0] && bufA[1] == '\0', "GetTextFaceA didn't copy\n");
n = GetTextFaceA(dc, 0, NULL);
- ok(n == sizeof faceA ||
- broken(n == 0), /* win98, winMe */
- "GetTextFaceA returned %d\n", n);
+ ok(n == sizeof faceA, "GetTextFaceA returned %d\n", n);
DeleteObject(SelectObject(dc, g));
ReleaseDC(NULL, dc);
@@ -4749,9 +4623,7 @@ static void test_GetGlyphOutline(void)
SetLastError(0xdeadbeef);
ret = GetGlyphOutlineA(hdc, 'A', GGO_METRICS, &gm, 0, NULL, NULL);
ok(ret == GDI_ERROR, "GetGlyphOutlineA should fail\n");
- ok(GetLastError() == 0xdeadbeef ||
- GetLastError() == ERROR_INVALID_PARAMETER, /* win98, winMe */
- "expected 0xdeadbeef, got %u\n", GetLastError());
+ ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %u\n", GetLastError());
memset(&gm, 0, sizeof(gm));
SetLastError(0xdeadbeef);
@@ -5089,12 +4961,8 @@ static void test_CreateFontIndirect(void)
ret = GetObjectA(hfont, sizeof(getobj_lf), &getobj_lf);
ok(ret, "GetObject failed: %d\n", GetLastError());
ok(lf.lfItalic == getobj_lf.lfItalic, "lfItalic: expect %02x got %02x\n", lf.lfItalic, getobj_lf.lfItalic);
- ok(lf.lfWeight == getobj_lf.lfWeight ||
- broken((SHORT)lf.lfWeight == getobj_lf.lfWeight), /* win9x */
- "lfWeight: expect %08x got %08x\n", lf.lfWeight, getobj_lf.lfWeight);
- ok(!lstrcmpA(lf.lfFaceName, getobj_lf.lfFaceName) ||
- broken(!memcmp(lf.lfFaceName, getobj_lf.lfFaceName, LF_FACESIZE-1)), /* win9x doesn't ensure '\0' termination */
- "font names don't match: %s != %s\n", lf.lfFaceName, getobj_lf.lfFaceName);
+ ok(lf.lfWeight == getobj_lf.lfWeight, "lfWeight: expect %08x got %08x\n", lf.lfWeight, getobj_lf.lfWeight);
+ ok(!lstrcmpA(lf.lfFaceName, getobj_lf.lfFaceName), "font names don't match: %s != %s\n", lf.lfFaceName, getobj_lf.lfFaceName);
DeleteObject(hfont);
}
}
@@ -5104,12 +4972,6 @@ static void test_CreateFontIndirectEx(void)
ENUMLOGFONTEXDVA lfex;
HFONT hfont;
- if (!pCreateFontIndirectExA)
- {
- win_skip("CreateFontIndirectExA is not available\n");
- return;
- }
-
if (!is_truetype_font_installed("Arial"))
{
skip("Arial is not installed\n");
@@ -5117,13 +4979,13 @@ static void test_CreateFontIndirectEx(void)
}
SetLastError(0xdeadbeef);
- hfont = pCreateFontIndirectExA(NULL);
+ hfont = CreateFontIndirectExA(NULL);
ok(hfont == NULL, "got %p\n", hfont);
ok(GetLastError() == 0xdeadbeef, "got error %d\n", GetLastError());
memset(&lfex, 0, sizeof(lfex));
lstrcpyA(lfex.elfEnumLogfontEx.elfLogFont.lfFaceName, "Arial");
- hfont = pCreateFontIndirectExA(&lfex);
+ hfont = CreateFontIndirectExA(&lfex);
ok(hfont != 0, "CreateFontIndirectEx failed\n");
if (hfont)
check_font("Arial", &lfex.elfEnumLogfontEx.elfLogFont, hfont);
@@ -5247,35 +5109,29 @@ static void test_AddFontMemResource(void)
HANDLE ret;
BOOL bRet;
- if (!pAddFontMemResourceEx || !pRemoveFontMemResourceEx)
- {
- win_skip("AddFontMemResourceEx is not available on this platform\n");
- return;
- }
-
SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(NULL, 0, NULL, NULL);
+ ret = AddFontMemResourceEx(NULL, 0, NULL, NULL);
ok(!ret, "AddFontMemResourceEx should fail\n");
ok(GetLastError() == ERROR_INVALID_PARAMETER,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u\n",
GetLastError());
SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(NULL, 10, NULL, NULL);
+ ret = AddFontMemResourceEx(NULL, 10, NULL, NULL);
ok(!ret, "AddFontMemResourceEx should fail\n");
ok(GetLastError() == ERROR_INVALID_PARAMETER,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u\n",
GetLastError());
SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(NULL, 0, NULL, &num_fonts);
+ ret = AddFontMemResourceEx(NULL, 0, NULL, &num_fonts);
ok(!ret, "AddFontMemResourceEx should fail\n");
ok(GetLastError() == ERROR_INVALID_PARAMETER,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u\n",
GetLastError());
SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(NULL, 10, NULL, &num_fonts);
+ ret = AddFontMemResourceEx(NULL, 10, NULL, &num_fonts);
ok(!ret, "AddFontMemResourceEx should fail\n");
ok(GetLastError() == ERROR_INVALID_PARAMETER,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u\n",
@@ -5292,7 +5148,7 @@ static void test_AddFontMemResource(void)
ok(!bRet, "Font wine_test should not be enumerated.\n");
num_fonts = 0;
- ret = pAddFontMemResourceEx(font, font_size, NULL, &num_fonts);
+ ret = AddFontMemResourceEx(font, font_size, NULL, &num_fonts);
ok(ret != 0, "Failed to add resource, %d.\n", GetLastError());
ok(num_fonts == 1, "Unexpected number of fonts %u.\n", num_fonts);
@@ -5302,7 +5158,7 @@ todo_wine
test_realization_info("wine_test", font_size, TRUE);
- bRet = pRemoveFontMemResourceEx(ret);
+ bRet = RemoveFontMemResourceEx(ret);
ok(bRet, "RemoveFontMemResourceEx error %d\n", GetLastError());
free_font(font);
@@ -5318,14 +5174,14 @@ todo_wine
}
SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(font, 0, NULL, NULL);
+ ret = AddFontMemResourceEx(font, 0, NULL, NULL);
ok(!ret, "AddFontMemResourceEx should fail\n");
ok(GetLastError() == ERROR_INVALID_PARAMETER,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u\n",
GetLastError());
SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(font, 10, NULL, NULL);
+ ret = AddFontMemResourceEx(font, 10, NULL, NULL);
ok(!ret, "AddFontMemResourceEx should fail\n");
ok(GetLastError() == ERROR_INVALID_PARAMETER,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u\n",
@@ -5333,28 +5189,25 @@ todo_wine
num_fonts = 0xdeadbeef;
SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(font, 0, NULL, &num_fonts);
+ ret = AddFontMemResourceEx(font, 0, NULL, &num_fonts);
ok(!ret, "AddFontMemResourceEx should fail\n");
ok(GetLastError() == ERROR_INVALID_PARAMETER,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u\n",
GetLastError());
ok(num_fonts == 0xdeadbeef, "number of loaded fonts should be 0xdeadbeef\n");
- if (0) /* hangs under windows 2000 */
- {
- num_fonts = 0xdeadbeef;
- SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(font, 10, NULL, &num_fonts);
- ok(!ret, "AddFontMemResourceEx should fail\n");
- ok(GetLastError() == 0xdeadbeef,
- "Expected GetLastError() to return 0xdeadbeef, got %u\n",
- GetLastError());
- ok(num_fonts == 0xdeadbeef, "number of loaded fonts should be 0xdeadbeef\n");
- }
+ num_fonts = 0xdeadbeef;
+ SetLastError(0xdeadbeef);
+ ret = AddFontMemResourceEx(font, 10, NULL, &num_fonts);
+ ok(!ret, "AddFontMemResourceEx should fail\n");
+ ok(GetLastError() == 0xdeadbeef,
+ "Expected GetLastError() to return 0xdeadbeef, got %u\n",
+ GetLastError());
+ ok(num_fonts == 0xdeadbeef, "number of loaded fonts should be 0xdeadbeef\n");
num_fonts = 0xdeadbeef;
SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(font, font_size, NULL, &num_fonts);
+ ret = AddFontMemResourceEx(font, font_size, NULL, &num_fonts);
ok(ret != 0, "AddFontMemResourceEx error %d\n", GetLastError());
ok(num_fonts != 0xdeadbeef, "number of loaded fonts should not be 0xdeadbeef\n");
ok(num_fonts != 0, "number of loaded fonts should not be 0\n");
@@ -5362,7 +5215,7 @@ todo_wine
free_font(font);
SetLastError(0xdeadbeef);
- bRet = pRemoveFontMemResourceEx(ret);
+ bRet = RemoveFontMemResourceEx(ret);
ok(bRet, "RemoveFontMemResourceEx error %d\n", GetLastError());
/* test invalid pointer to number of loaded fonts */
@@ -5370,14 +5223,14 @@ todo_wine
ok(font != NULL, "Unable to locate and load font sserife.fon\n");
SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(font, font_size, NULL, (void *)0xdeadbeef);
+ ret = AddFontMemResourceEx(font, font_size, NULL, (void *)0xdeadbeef);
ok(!ret, "AddFontMemResourceEx should fail\n");
ok(GetLastError() == 0xdeadbeef,
"Expected GetLastError() to return 0xdeadbeef, got %u\n",
GetLastError());
SetLastError(0xdeadbeef);
- ret = pAddFontMemResourceEx(font, font_size, NULL, NULL);
+ ret = AddFontMemResourceEx(font, font_size, NULL, NULL);
ok(!ret, "AddFontMemResourceEx should fail\n");
ok(GetLastError() == ERROR_INVALID_PARAMETER,
"Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u\n",
@@ -6012,12 +5865,6 @@ static void test_CreateScalableFontResource(void)
DWORD ret;
int i;
- if (!pAddFontResourceExA || !pRemoveFontResourceExA)
- {
- win_skip("AddFontResourceExA is not available on this platform\n");
- return;
- }
-
if (!write_ttf_file("wine_test.ttf", ttf_name))
{
skip("Failed to create ttf file for testing\n");
@@ -6066,7 +5913,7 @@ static void test_CreateScalableFontResource(void)
ret = DeleteFileA(fot_name);
ok(ret, "DeleteFile() error %d\n", GetLastError());
- ret = pRemoveFontResourceExA(fot_name, 0, 0);
+ ret = RemoveFontResourceExA(fot_name, 0, 0);
ok(!ret, "RemoveFontResourceEx() should fail\n");
/* test public font resource */
@@ -6078,7 +5925,7 @@ static void test_CreateScalableFontResource(void)
ok(!ret, "font wine_test should not be enumerated\n");
SetLastError(0xdeadbeef);
- ret = pAddFontResourceExA(fot_name, 0, 0);
+ ret = AddFontResourceExA(fot_name, 0, 0);
ok(ret, "AddFontResourceEx() error %d\n", GetLastError());
ret = is_truetype_font_installed("wine_test");
@@ -6089,33 +5936,33 @@ static void test_CreateScalableFontResource(void)
test_GetGlyphOutline_character();
test_fstype_fixup();
- ret = pRemoveFontResourceExA(fot_name, FR_PRIVATE, 0);
+ ret = RemoveFontResourceExA(fot_name, FR_PRIVATE, 0);
ok(!ret, "RemoveFontResourceEx() with not matching flags should fail\n");
SetLastError(0xdeadbeef);
- ret = pRemoveFontResourceExA(fot_name, 0, 0);
+ ret = RemoveFontResourceExA(fot_name, 0, 0);
ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
ret = is_truetype_font_installed("wine_test");
ok(!ret, "font wine_test should not be enumerated\n");
- ret = pRemoveFontResourceExA(fot_name, 0, 0);
+ ret = RemoveFontResourceExA(fot_name, 0, 0);
ok(!ret, "RemoveFontResourceEx() should fail\n");
/* test refcounting */
for (i = 0; i < 5; i++)
{
SetLastError(0xdeadbeef);
- ret = pAddFontResourceExA(fot_name, 0, 0);
+ ret = AddFontResourceExA(fot_name, 0, 0);
ok(ret, "AddFontResourceEx() error %d\n", GetLastError());
}
for (i = 0; i < 5; i++)
{
SetLastError(0xdeadbeef);
- ret = pRemoveFontResourceExA(fot_name, 0, 0);
+ ret = RemoveFontResourceExA(fot_name, 0, 0);
ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
}
- ret = pRemoveFontResourceExA(fot_name, 0, 0);
+ ret = RemoveFontResourceExA(fot_name, 0, 0);
ok(!ret, "RemoveFontResourceEx() should fail\n");
DeleteFileA(fot_name);
@@ -6129,7 +5976,7 @@ static void test_CreateScalableFontResource(void)
ok(!ret, "font wine_test should not be enumerated\n");
SetLastError(0xdeadbeef);
- ret = pAddFontResourceExA(fot_name, 0, 0);
+ ret = AddFontResourceExA(fot_name, 0, 0);
ok(ret, "AddFontResourceEx() error %d\n", GetLastError());
ret = is_truetype_font_installed("wine_test");
@@ -6138,13 +5985,13 @@ static void test_CreateScalableFontResource(void)
/* XP allows removing a private font added with 0 flags */
SetLastError(0xdeadbeef);
- ret = pRemoveFontResourceExA(fot_name, FR_PRIVATE, 0);
+ ret = RemoveFontResourceExA(fot_name, FR_PRIVATE, 0);
ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
ret = is_truetype_font_installed("wine_test");
ok(!ret, "font wine_test should not be enumerated\n");
- ret = pRemoveFontResourceExA(fot_name, 0, 0);
+ ret = RemoveFontResourceExA(fot_name, 0, 0);
ok(!ret, "RemoveFontResourceEx() should fail\n");
DeleteFileA(fot_name);
@@ -6194,7 +6041,7 @@ static void check_vertical_font(const char *name, BOOL *installed, BOOL *selecte
if (!*selected)
memset(gm, 0, sizeof *gm);
- ret = pGetGlyphIndicesW(hdc, str, 1, gi, 0);
+ ret = GetGlyphIndicesW(hdc, str, 1, gi, 0);
ok(ret != GDI_ERROR, "GetGlyphIndicesW failed\n");
SelectObject(hdc, hfont_prev);
@@ -6259,26 +6106,21 @@ static void check_vertical_metrics(const char *face)
int offset;
SHORT topSideBearing;
- if (!pGetGlyphIndicesW) {
- win_skip("GetGlyphIndices is not available on this platform\n");
- }
- else {
- ret = pGetGlyphIndicesW(hdc, (LPCWSTR)&code, 1, &idx, 0);
- ok(ret != 0, "GetGlyphIndicesW failed\n");
- numOfLongVerMetrics = GET_BE_WORD(numOfLongVerMetrics);
- if (numOfLongVerMetrics > idx)
- offset = idx * 2 + 1;
- else
- offset = numOfLongVerMetrics * 2 + (idx - numOfLongVerMetrics);
- ret = GetFontData(hdc, MS_MAKE_TAG('v','m','t','x'), offset * sizeof(SHORT),
- &topSideBearing, sizeof(SHORT));
- ok(ret != GDI_ERROR, "GetFontData(vmtx) failed\n");
- topSideBearing = GET_BE_WORD(topSideBearing);
- ok(match_off_by_1(vgm.gmptGlyphOrigin.x,
- MulDiv(topSideBearing, height, otm.otmEMSquare), FALSE),
- "expected %d, got %d\n",
- MulDiv(topSideBearing, height, otm.otmEMSquare), vgm.gmptGlyphOrigin.x);
- }
+ ret = GetGlyphIndicesW(hdc, (LPCWSTR)&code, 1, &idx, 0);
+ ok(ret != 0, "GetGlyphIndicesW failed\n");
+ numOfLongVerMetrics = GET_BE_WORD(numOfLongVerMetrics);
+ if (numOfLongVerMetrics > idx)
+ offset = idx * 2 + 1;
+ else
+ offset = numOfLongVerMetrics * 2 + (idx - numOfLongVerMetrics);
+ ret = GetFontData(hdc, MS_MAKE_TAG('v','m','t','x'), offset * sizeof(SHORT),
+ &topSideBearing, sizeof(SHORT));
+ ok(ret != GDI_ERROR, "GetFontData(vmtx) failed\n");
+ topSideBearing = GET_BE_WORD(topSideBearing);
+ ok(match_off_by_1(vgm.gmptGlyphOrigin.x,
+ MulDiv(topSideBearing, height, otm.otmEMSquare), FALSE),
+ "expected %d, got %d\n",
+ MulDiv(topSideBearing, height, otm.otmEMSquare), vgm.gmptGlyphOrigin.x);
}
else
{
@@ -6287,8 +6129,7 @@ static void check_vertical_metrics(const char *face)
vgm.gmptGlyphOrigin.x, rgm.gmptGlyphOrigin.x, vgm.gmCellIncX, otm.otmDescent);
}
- ok(vgm.gmptGlyphOrigin.y == abc.abcA + abc.abcB + otm.otmDescent ||
- broken(vgm.gmptGlyphOrigin.y == abc.abcA + abc.abcB - otm.otmTextMetrics.tmDescent) /* win2k */,
+ ok(vgm.gmptGlyphOrigin.y == abc.abcA + abc.abcB + otm.otmDescent,
"got %d, expected abcA(%d) + abcB(%u) + descent(%d)\n",
(INT)vgm.gmptGlyphOrigin.y, abc.abcA, abc.abcB, otm.otmDescent);
@@ -6309,19 +6150,13 @@ static void test_vertical_font(void)
"@MS UI Gothic", /* has vmtx table, available on native */
};
- if (!pAddFontResourceExA || !pRemoveFontResourceExA || !pGetGlyphIndicesW)
- {
- win_skip("AddFontResourceExA or GetGlyphIndicesW is not available on this platform\n");
- return;
- }
-
if (!write_ttf_file("vertical.ttf", ttf_name))
{
skip("Failed to create ttf file for testing\n");
return;
}
- num = pAddFontResourceExA(ttf_name, FR_PRIVATE, 0);
+ num = AddFontResourceExA(ttf_name, FR_PRIVATE, 0);
ok(num == 2, "AddFontResourceExA should add 2 fonts from vertical.ttf\n");
check_vertical_font("WineTestVertical", &installed, &selected, &gm, &hgi);
@@ -6349,7 +6184,7 @@ static void test_vertical_font(void)
check_vertical_metrics(&face[1]);
}
- ret = pRemoveFontResourceExA(ttf_name, FR_PRIVATE, 0);
+ ret = RemoveFontResourceExA(ttf_name, FR_PRIVATE, 0);
ok(ret, "RemoveFontResourceEx() error %d\n", GetLastError());
DeleteFileA(ttf_name);
@@ -6510,12 +6345,7 @@ static void test_stock_fonts(void)
ok(hfont != 0, "%d: GetStockObject(%d) failed\n", i, font[i]);
ret = GetObjectA(hfont, sizeof(lf), &lf);
- if (ret != sizeof(lf))
- {
- /* NT4 */
- win_skip("%d: GetObject returned %d instead of sizeof(LOGFONT)\n", i, ret);
- continue;
- }
+ ok(ret == sizeof(lf), "%d: GetObject returned %d instead of sizeof(LOGFONT)\n", i, ret);
for (j = 0; td[i][j].face_name[0] != 0; j++)
{
@@ -6664,12 +6494,6 @@ static void test_GetCharWidth32(void)
INT bufferW;
HWND hwnd;
- if (!pGetCharWidth32W)
- {
- win_skip("GetCharWidth32W not available on this platform\n");
- return;
- }
-
memset(&lf, 0, sizeof(lf));
strcpy(lf.lfFaceName, "System");
lf.lfHeight = 20;
@@ -6678,7 +6502,7 @@ static void test_GetCharWidth32(void)
hdc = GetDC(0);
hfont = SelectObject(hdc, hfont);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ret = GetCharWidth32A(hdc, 'a', 'a', &bufferA);
ok(ret, "GetCharWidth32A should have succeeded\n");
@@ -6700,25 +6524,25 @@ static void test_GetCharWidth32(void)
SetMapMode( hdc, MM_ANISOTROPIC );
SelectObject(hdc, hfont);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ok (bufferW > 0," Width should be greater than zero\n");
SetWindowExtEx(hdc, -1,-1,NULL);
SetGraphicsMode(hdc, GM_COMPATIBLE);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ok (bufferW > 0," Width should be greater than zero\n");
SetGraphicsMode(hdc, GM_ADVANCED);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ok (bufferW > 0," Width should be greater than zero\n");
SetWindowExtEx(hdc, 1,1,NULL);
SetGraphicsMode(hdc, GM_COMPATIBLE);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ok (bufferW > 0," Width should be greater than zero\n");
SetGraphicsMode(hdc, GM_ADVANCED);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ok (bufferW > 0," Width should be greater than zero\n");
@@ -6731,25 +6555,25 @@ static void test_GetCharWidth32(void)
SetMapMode( hdc, MM_ANISOTROPIC );
SelectObject(hdc, hfont);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ok (bufferW > 0," Width should be greater than zero\n");
SetWindowExtEx(hdc, -1,-1,NULL);
SetGraphicsMode(hdc, GM_COMPATIBLE);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ok (bufferW > 0," Width should be greater than zero\n");
SetGraphicsMode(hdc, GM_ADVANCED);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ok (bufferW > 0," Width should be greater than zero\n");
SetWindowExtEx(hdc, 1,1,NULL);
SetGraphicsMode(hdc, GM_COMPATIBLE);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ok (bufferW > 0," Width should be greater than zero\n");
SetGraphicsMode(hdc, GM_ADVANCED);
- ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
+ ret = GetCharWidth32W(hdc, 'a', 'a', &bufferW);
ok(ret, "GetCharWidth32W should have succeeded\n");
ok (bufferW > 0," Width should be greater than zero\n");
@@ -6903,11 +6727,6 @@ static void test_bitmap_font_glyph_index(void)
CHARSETINFO ci;
BYTE chr = '\xA9';
- if (!pGetGlyphIndicesW) {
- win_skip("GetGlyphIndices is unavailable\n");
- return;
- }
-
hdc = CreateCompatibleDC(0);
ok(hdc != NULL, "CreateCompatibleDC failed\n");
@@ -6952,7 +6771,7 @@ static void test_bitmap_font_glyph_index(void)
{
int len = lstrlenW(text);
LPWORD indices = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WORD));
- ret = pGetGlyphIndicesW(hdc, text, len, indices, 0);
+ ret = GetGlyphIndicesW(hdc, text, len, indices, 0);
ok(ret, "GetGlyphIndices failed\n");
ok(memcmp(indices, text, sizeof(WORD) * len) == 0,
"Glyph indices and text are different for %s:%d\n", lf.lfFaceName, tm.tmCharSet);
--
2.34.1