oleaut32: FONTDESC size field value is not important for OleCreateFontIndirect.
This commit is contained in:
parent
78ca68c854
commit
08f578a6c5
|
@ -2245,11 +2245,6 @@ static OLEFontImpl* OLEFontImpl_Construct(const FONTDESC *fontDesc)
|
||||||
|
|
||||||
newObject->ref = 1;
|
newObject->ref = 1;
|
||||||
|
|
||||||
/*
|
|
||||||
* Copy the description of the font in the object.
|
|
||||||
*/
|
|
||||||
assert(fontDesc->cbSizeofstruct >= sizeof(FONTDESC));
|
|
||||||
|
|
||||||
newObject->description.cbSizeofstruct = sizeof(FONTDESC);
|
newObject->description.cbSizeofstruct = sizeof(FONTDESC);
|
||||||
newObject->description.lpstrName = HeapAlloc(GetProcessHeap(),
|
newObject->description.lpstrName = HeapAlloc(GetProcessHeap(),
|
||||||
0,
|
0,
|
||||||
|
|
|
@ -1104,6 +1104,42 @@ static void test_realization(void)
|
||||||
IFont_Release(font);
|
IFont_Release(font);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_OleCreateFontIndirect(void)
|
||||||
|
{
|
||||||
|
FONTDESC fontdesc;
|
||||||
|
IFont *font;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
fontdesc.cbSizeofstruct = sizeof(fontdesc);
|
||||||
|
fontdesc.lpstrName = arial_font;
|
||||||
|
fontdesc.cySize.int64 = 12 * 10000; /* 12 pt */
|
||||||
|
fontdesc.sWeight = FW_NORMAL;
|
||||||
|
fontdesc.sCharset = ANSI_CHARSET;
|
||||||
|
fontdesc.fItalic = FALSE;
|
||||||
|
fontdesc.fUnderline = FALSE;
|
||||||
|
fontdesc.fStrikethrough = FALSE;
|
||||||
|
|
||||||
|
hr = pOleCreateFontIndirect(&fontdesc, &IID_IFont, (void**)&font);
|
||||||
|
EXPECT_HR(hr, S_OK);
|
||||||
|
IFont_Release(font);
|
||||||
|
|
||||||
|
/* play with cbSizeofstruct value */
|
||||||
|
fontdesc.cbSizeofstruct = sizeof(fontdesc)-1;
|
||||||
|
hr = pOleCreateFontIndirect(&fontdesc, &IID_IFont, (void**)&font);
|
||||||
|
EXPECT_HR(hr, S_OK);
|
||||||
|
IFont_Release(font);
|
||||||
|
|
||||||
|
fontdesc.cbSizeofstruct = sizeof(fontdesc)+1;
|
||||||
|
hr = pOleCreateFontIndirect(&fontdesc, &IID_IFont, (void**)&font);
|
||||||
|
EXPECT_HR(hr, S_OK);
|
||||||
|
IFont_Release(font);
|
||||||
|
|
||||||
|
fontdesc.cbSizeofstruct = 0;
|
||||||
|
hr = pOleCreateFontIndirect(&fontdesc, &IID_IFont, (void**)&font);
|
||||||
|
EXPECT_HR(hr, S_OK);
|
||||||
|
IFont_Release(font);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(olefont)
|
START_TEST(olefont)
|
||||||
{
|
{
|
||||||
hOleaut32 = GetModuleHandleA("oleaut32.dll");
|
hOleaut32 = GetModuleHandleA("oleaut32.dll");
|
||||||
|
@ -1126,4 +1162,5 @@ START_TEST(olefont)
|
||||||
test_returns();
|
test_returns();
|
||||||
test_hfont_lifetime();
|
test_hfont_lifetime();
|
||||||
test_realization();
|
test_realization();
|
||||||
|
test_OleCreateFontIndirect();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue