From 03a88ff7157e6211033d0f5ae039298c7c7b18dc Mon Sep 17 00:00:00 2001 From: Colin Finck Date: Wed, 22 Jul 2015 09:21:20 +0000 Subject: [PATCH] [LOCALSPL] Stalling execution of the Print Processor under Windows reveals that the status flag JOB_STATUS_PRINTING is only set right before calling PrintDocumentOnPrintProcessor. svn path=/branches/colins-printing-for-freedom/; revision=68549 --- reactos/win32ss/printing/providers/localspl/jobs.c | 3 +-- reactos/win32ss/printing/providers/localspl/printingthread.c | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/reactos/win32ss/printing/providers/localspl/jobs.c b/reactos/win32ss/printing/providers/localspl/jobs.c index facf29832ec..2479b772e7c 100644 --- a/reactos/win32ss/printing/providers/localspl/jobs.c +++ b/reactos/win32ss/printing/providers/localspl/jobs.c @@ -1155,9 +1155,8 @@ LocalScheduleJob(HANDLE hPrinter, DWORD dwJobID) goto Cleanup; } - // Switch from spooling to printing. + // Spooling is finished at this point. pJob->dwStatus &= ~JOB_STATUS_SPOOLING; - pJob->dwStatus |= JOB_STATUS_PRINTING; // Write the job data into the shadow file. wcscpy(wcsrchr(wszFullPath, L'.'), L".SHD"); diff --git a/reactos/win32ss/printing/providers/localspl/printingthread.c b/reactos/win32ss/printing/providers/localspl/printingthread.c index 7771d732fc2..68ec46dd4d5 100644 --- a/reactos/win32ss/printing/providers/localspl/printingthread.c +++ b/reactos/win32ss/printing/providers/localspl/printingthread.c @@ -74,6 +74,9 @@ PrintingThreadProc(PLOCAL_JOB pJob) CopyMemory(&pwszPrinterAndJob[cchPrinterName], wszJobAppendix, cchJobAppendix * sizeof(WCHAR)); _ultow(OpenData.JobId, &pwszPrinterAndJob[cchPrinterName + cchJobAppendix], 10); + // Printing starts here. + pJob->dwStatus |= JOB_STATUS_PRINTING; + // Print the document. // Note that pJob is freed after this function, so we may not access it anymore. if (!pPrintProcessor->pfnPrintDocumentOnPrintProcessor(hPrintProcessor, pwszPrinterAndJob)) -- 2.17.1