gdi32: Implicitly call StartPage in ExtEscape on printer DC.

This commit is contained in:
Piotr Caban 2024-03-27 13:22:02 +01:00 committed by Alexandre Julliard
parent dd68561c4a
commit 2546468b4c

View file

@ -743,16 +743,31 @@ INT WINAPI Escape( HDC hdc, INT escape, INT in_count, const char *in_data, void
INT WINAPI ExtEscape( HDC hdc, INT escape, INT input_size, const char *input,
INT output_size, char *output )
{
struct print *print;
DC_ATTR *dc_attr;
if (is_meta_dc( hdc ))
return METADC_ExtEscape( hdc, escape, input_size, input, output_size, output );
if (!(dc_attr = get_dc_attr( hdc ))) return 0;
if ((print = get_dc_print( dc_attr )) && dc_attr->emf)
if (dc_attr->print)
{
int ret = EMFDC_ExtEscape( dc_attr, escape, input_size, input, output_size, output );
if (ret) return ret;
switch (escape)
{
case PASSTHROUGH:
case POSTSCRIPT_DATA:
case GETFACENAME:
case DOWNLOADFACE:
case BEGIN_PATH:
case CLIP_TO_PATH:
case END_PATH:
case DOWNLOADHEADER:
print_call_start_page( dc_attr );
}
if (dc_attr->emf)
{
int ret = EMFDC_ExtEscape( dc_attr, escape, input_size, input, output_size, output );
if (ret) return ret;
}
}
return NtGdiExtEscape( hdc, NULL, 0, escape, input_size, input, output_size, output );
}