+static void test_SegoeUI(void) +{
- HRESULT hr;
- IDWriteFactory2 *factory;
- IDWriteFontCollection *collection;
- IDWriteFontFamily *family;
- IDWriteFont *font;
- UINT32 index, count, i;
- WCHAR name[256];
- BOOL exists, found;
- hr = DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED,
&IID_IDWriteFactory2, (IUnknown **)&factory);
- if (hr != S_OK)
- {
win_skip("IDWriteFactory2 is not supported\n");
return;
- }
- hr = IDWriteFactory2_GetSystemFontCollection(factory, &collection,
FALSE);
- ok(hr == S_OK, "got %#x\n", hr);
- hr = IDWriteFontCollection_FindFamilyName(collection, L"Segoe UI",
&index, &exists);
- ok(hr == S_OK, "got %#x\n", hr);
- if (!exists)
- {
skip("Segoe UI is not installed\n");
IDWriteFontCollection_Release(collection);
IDWriteFactory2_Release(factory);
return;
- }
- ok(index != UINT_MAX && exists, "Segoe UI was not found\n");
- hr = IDWriteFontCollection_GetFontFamily(collection, index, &family);
- ok(hr == S_OK, "got %#x\n", hr);
- count = IDWriteFontFamily_GetFontCount(family);
- trace("family Segoe UI has %u fonts\n", count);
- found = FALSE;
- for (i = 0; i < count; i++)
- {
hr = IDWriteFontFamily_GetFont(family, i, &font);
ok(hr == S_OK, "got %#x\n", hr);
get_font_name(font, name, ARRAY_SIZE(name));
if (!wcscmp(name, L"Segoe UI Symbol"))
found = TRUE;
hr = IDWriteFont_HasCharacter(font, 0x25d4, &exists);
ok(hr == S_OK, "got %#x\n", hr);
ok(!exists, "%u: %s has character 0x25d4\n", i,
wine_dbgstr_w(name));
IDWriteFont_Release(font);
- }
- ok(!found, "Segoe UI Symbol should not be part of Segoe UI family\n");
- IDWriteFontFamily_Release(family);
- IDWriteFontCollection_Release(collection);
- IDWriteFactory2_Release(factory);
+}
All this does is checking if font is installed, and we know it is installed on all current Windows versions, it's not some directwrite functionality. Second patch will already trigger a todo case when font is installed in Wine.