dwrite: Implement another GetFontFamily() variant.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
292dff589e
commit
c440d87464
|
@ -3002,11 +3002,23 @@ static HRESULT WINAPI dwritefontcollection1_GetFontFamily(IDWriteFontCollection3
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI dwritefontcollection2_GetFontFamily(IDWriteFontCollection3 *iface,
|
static HRESULT WINAPI dwritefontcollection2_GetFontFamily(IDWriteFontCollection3 *iface,
|
||||||
UINT32 index, IDWriteFontFamily2 **family)
|
UINT32 index, IDWriteFontFamily2 **ret)
|
||||||
{
|
{
|
||||||
FIXME("%p, %u, %p.\n", iface, index, family);
|
struct dwrite_fontcollection *collection = impl_from_IDWriteFontCollection3(iface);
|
||||||
|
struct dwrite_fontfamily *family;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
return E_NOTIMPL;
|
TRACE("%p, %u, %p.\n", iface, index, ret);
|
||||||
|
|
||||||
|
*ret = NULL;
|
||||||
|
|
||||||
|
if (index >= collection->count)
|
||||||
|
return E_FAIL;
|
||||||
|
|
||||||
|
if (SUCCEEDED(hr = create_fontfamily(collection, index, &family)))
|
||||||
|
*ret = &family->IDWriteFontFamily2_iface;
|
||||||
|
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI dwritefontcollection2_GetMatchingFonts(IDWriteFontCollection3 *iface,
|
static HRESULT WINAPI dwritefontcollection2_GetMatchingFonts(IDWriteFontCollection3 *iface,
|
||||||
|
|
|
@ -1521,14 +1521,15 @@ static void test_GetFontFamily(void)
|
||||||
{
|
{
|
||||||
IDWriteFontCollection *collection, *collection2;
|
IDWriteFontCollection *collection, *collection2;
|
||||||
IDWriteFontCollection *syscoll;
|
IDWriteFontCollection *syscoll;
|
||||||
|
IDWriteFontCollection2 *coll2;
|
||||||
IDWriteFontFamily *family, *family2;
|
IDWriteFontFamily *family, *family2;
|
||||||
IDWriteFontFamily1 *family1;
|
IDWriteFontFamily1 *family1;
|
||||||
IDWriteGdiInterop *interop;
|
IDWriteGdiInterop *interop;
|
||||||
IDWriteFont *font, *font2;
|
IDWriteFont *font, *font2;
|
||||||
IDWriteFactory *factory;
|
IDWriteFactory *factory;
|
||||||
LOGFONTW logfont;
|
LOGFONTW logfont;
|
||||||
|
ULONG ref, count;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
ULONG ref;
|
|
||||||
|
|
||||||
factory = create_factory();
|
factory = create_factory();
|
||||||
|
|
||||||
|
@ -1656,6 +1657,28 @@ if (0) /* crashes on native */
|
||||||
else
|
else
|
||||||
win_skip("IDWriteFontFamily1 is not supported.\n");
|
win_skip("IDWriteFontFamily1 is not supported.\n");
|
||||||
|
|
||||||
|
/* IDWriteFontCollection2::GetFontFamily() */
|
||||||
|
if (SUCCEEDED(IDWriteFontCollection_QueryInterface(syscoll, &IID_IDWriteFontCollection2, (void **)&coll2)))
|
||||||
|
{
|
||||||
|
IDWriteFontFamily2 *family2;
|
||||||
|
|
||||||
|
count = IDWriteFontCollection2_GetFontFamilyCount(coll2);
|
||||||
|
ok(!!count, "Unexpected family count.\n");
|
||||||
|
|
||||||
|
family2 = (void *)0xdeadbeef;
|
||||||
|
hr = IDWriteFontCollection2_GetFontFamily(coll2, count, &family2);
|
||||||
|
ok(hr == E_FAIL, "Unexpected hr %#x.\n", hr);
|
||||||
|
ok(!family2, "Unexpected pointer.\n");
|
||||||
|
|
||||||
|
hr = IDWriteFontCollection2_GetFontFamily(coll2, 0, &family2);
|
||||||
|
ok(hr == S_OK, "Failed to get family, hr %#x.\n", hr);
|
||||||
|
IDWriteFontFamily2_Release(family2);
|
||||||
|
|
||||||
|
IDWriteFontCollection2_Release(coll2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
win_skip("IDWriteFontCollection2 is not supported.\n");
|
||||||
|
|
||||||
IDWriteFontCollection_Release(syscoll);
|
IDWriteFontCollection_Release(syscoll);
|
||||||
IDWriteFontCollection_Release(collection2);
|
IDWriteFontCollection_Release(collection2);
|
||||||
IDWriteFontCollection_Release(collection);
|
IDWriteFontCollection_Release(collection);
|
||||||
|
|
Loading…
Reference in New Issue