diff --git a/dlls/wineps/escape.c b/dlls/wineps/escape.c index 97a029cfeaf..61ce3cdb1b2 100644 --- a/dlls/wineps/escape.c +++ b/dlls/wineps/escape.c @@ -79,6 +79,8 @@ INT PSDRV_Escape( DC *dc, INT nEscape, INT cbInput, case SETCHARSET: case EXT_DEVICE_CAPS: case SET_BOUNDS: + case PASSTHROUGH: + case POSTSCRIPT_PASSTHROUGH: return TRUE; default: @@ -246,6 +248,17 @@ INT PSDRV_Escape( DC *dc, INT nEscape, INT cbInput, return 0; } + case PASSTHROUGH: + case POSTSCRIPT_PASSTHROUGH: + { + /* Write directly to spool file, bypassing normal PS driver + * processing that is done along with writing PostScript code + * to the spool. + */ + return WriteSpool16(physDev->job.hJob, ((char *)lpInData) + 2, + cbInput); + } + default: FIXME("Unimplemented code 0x%x\n", nEscape); return 0;