From: Piotr Caban piotr@codeweavers.com
--- dlls/localspl/provider.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/dlls/localspl/provider.c b/dlls/localspl/provider.c index 8380f53aacc..e65720f5eca 100644 --- a/dlls/localspl/provider.c +++ b/dlls/localspl/provider.c @@ -3474,6 +3474,21 @@ static BOOL WINAPI fpScheduleJob(HANDLE hprinter, DWORD job_id) return ret; }
+static BOOL WINAPI fpReadPrinter(HANDLE hprinter, void *buf, DWORD size, DWORD *bytes_read) +{ + job_t *job = (job_t *)hprinter; + + TRACE("%p %p %lu %p\n", hprinter, buf, size, bytes_read); + + if (!job || (job->header.type != HANDLE_JOB)) + { + SetLastError(ERROR_INVALID_HANDLE); + return FALSE; + } + + return ReadFile(job->hf, buf, size, bytes_read, NULL); +} + static BOOL WINAPI fpEndDocPrinter(HANDLE hprinter) { printer_t *printer = (printer_t *)hprinter; @@ -3588,7 +3603,7 @@ static const PRINTPROVIDOR backend = { fpWritePrinter, NULL, /* fpEndPagePrinter */ NULL, /* fpAbortPrinter */ - NULL, /* fpReadPrinter */ + fpReadPrinter, fpEndDocPrinter, fpAddJob, fpScheduleJob,