[GDI32] Fix Meta file packing recursion issues.

TextOut was looping back adding additional EMR packet to the meta file.
This commit is contained in:
James Tabor 2021-09-06 18:37:24 -05:00
parent 03516733ef
commit a022dc8eaf

View file

@ -475,6 +475,7 @@ ExtTextOutA(
return ret;
}
static BOOL bBypassETOWMF = FALSE;
/*
* @implemented
@ -493,25 +494,34 @@ ExtTextOutW(
{
PDC_ATTR pdcattr;
HANDLE_METADC(BOOL,
ExtTextOut,
FALSE,
hdc,
x,
y,
fuOptions,
lprc,
lpString,
cwc,
lpDx);
if ( !bBypassETOWMF )
{
HANDLE_METADC(BOOL,
ExtTextOut,
FALSE,
hdc,
x,
y,
fuOptions,
lprc,
lpString,
cwc,
lpDx);
}
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
if (!(fuOptions & (ETO_GLYPH_INDEX | ETO_IGNORELANGUAGE)))
{
bBypassETOWMF = TRUE;
if (LoadLPK(LPK_ETO))
return LpkExtTextOut(hdc, x, y, fuOptions, lprc, lpString, cwc , lpDx, 0);
}
else
{
bBypassETOWMF = FALSE;
}
/* Get the DC attribute */
pdcattr = GdiGetDcAttr(hdc);