1 /*
2 * PROJECT: ReactOS Spooler Router
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Functions for managing print jobs
5 * COPYRIGHT: Copyright 2015 Colin Finck (colin@reactos.org)
6 */
7
8 #include "precomp.h"
9
10 BOOL WINAPI
AddJobW(HANDLE hPrinter,DWORD Level,PBYTE pData,DWORD cbBuf,PDWORD pcbNeeded)11 AddJobW(HANDLE hPrinter, DWORD Level, PBYTE pData, DWORD cbBuf, PDWORD pcbNeeded)
12 {
13 PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
14
15 // Sanity checks.
16 if (!pHandle)
17 {
18 SetLastError(ERROR_INVALID_PARAMETER);
19 return FALSE;
20 }
21
22 return pHandle->pPrintProvider->PrintProvider.fpAddJob(pHandle->hPrinter, Level, pData, cbBuf, pcbNeeded);
23 }
24
25 BOOL WINAPI
EnumJobsW(HANDLE hPrinter,DWORD FirstJob,DWORD NoJobs,DWORD Level,PBYTE pJob,DWORD cbBuf,PDWORD pcbNeeded,PDWORD pcReturned)26 EnumJobsW(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, DWORD Level, PBYTE pJob, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
27 {
28 PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
29
30 // Sanity checks.
31 if (!pHandle)
32 {
33 SetLastError(ERROR_INVALID_PARAMETER);
34 return FALSE;
35 }
36
37 return pHandle->pPrintProvider->PrintProvider.fpEnumJobs(pHandle->hPrinter, FirstJob, NoJobs, Level, pJob, cbBuf, pcbNeeded, pcReturned);
38 }
39
40 BOOL WINAPI
GetJobW(HANDLE hPrinter,DWORD JobId,DWORD Level,PBYTE pJob,DWORD cbBuf,PDWORD pcbNeeded)41 GetJobW(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pJob, DWORD cbBuf, PDWORD pcbNeeded)
42 {
43 PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
44
45 // Sanity checks.
46 if (!pHandle)
47 {
48 SetLastError(ERROR_INVALID_PARAMETER);
49 return FALSE;
50 }
51
52 return pHandle->pPrintProvider->PrintProvider.fpGetJob(pHandle->hPrinter, JobId, Level, pJob, cbBuf, pcbNeeded);
53 }
54
55 BOOL WINAPI
ScheduleJob(HANDLE hPrinter,DWORD dwJobID)56 ScheduleJob(HANDLE hPrinter, DWORD dwJobID)
57 {
58 PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
59
60 // Sanity checks.
61 if (!pHandle)
62 {
63 SetLastError(ERROR_INVALID_PARAMETER);
64 return FALSE;
65 }
66
67 return pHandle->pPrintProvider->PrintProvider.fpScheduleJob(pHandle->hPrinter, dwJobID);
68 }
69
70 BOOL WINAPI
SetJobW(HANDLE hPrinter,DWORD JobId,DWORD Level,PBYTE pJobInfo,DWORD Command)71 SetJobW(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pJobInfo, DWORD Command)
72 {
73 PSPOOLSS_PRINTER_HANDLE pHandle = (PSPOOLSS_PRINTER_HANDLE)hPrinter;
74
75 // Sanity checks.
76 if (!pHandle)
77 {
78 SetLastError(ERROR_INVALID_PARAMETER);
79 return FALSE;
80 }
81
82 return pHandle->pPrintProvider->PrintProvider.fpSetJob(pHandle->hPrinter, JobId, Level, pJobInfo, Command);
83 }
84