ReactOS 0.4.16-dev-334-g4d9f67c
precomp.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Local Spooler
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Precompiled Header for all source files
5 * COPYRIGHT: Copyright 2015-2017 Colin Finck (colin@reactos.org)
6 */
7
8#ifndef _PRECOMP_H
9#define _PRECOMP_H
10
11#define WIN32_NO_STATUS
12#include <limits.h>
13#include <stdlib.h>
14#include <wchar.h>
15
16#include <lmcons.h>
17#include <rpc.h>
18#include <strsafe.h>
19#include <windef.h>
20#include <winbase.h>
21#include <wingdi.h>
22#include <winreg.h>
23#include <winspool.h>
24#include <winsplp.h>
25#include <winddiui.h>
26#include <dsrole.h>
27#include <secext.h>
28#include <ndk/rtlfuncs.h>
29
30#define SKIPLIST_LEVELS 16
31#include <skiplist.h>
32#include <spoolss.h>
33
34#include <wine/debug.h>
36
37// Macros
38#define IS_VALID_JOB_ID(ID) (ID >= 1 && ID <= 99999)
39#define IS_VALID_PRIORITY(P) (P >= MIN_PRIORITY && P <= MAX_PRIORITY)
40
41// Constants
42#define SHD_WIN2003_SIGNATURE 0x4968
43
44// Function pointers
54
55// Forward declarations
66
67// Structures
72{
82};
83
88{
93};
94
99{
110};
111
117{
118 // This sort key must be the first element for LookupElementSkiplist to work!
120
131};
132
138{
139 // This sort key must be the first element for LookupElementSkiplist to work!
162};
163
168{
175};
176
181{
184};
185
190{
193};
194
200{
201 enum {
209};
210
217{
246};
247
248// forms.c
250BOOL WINAPI LocalAddForm(HANDLE hPrinter, DWORD Level, PBYTE pForm);
251BOOL WINAPI LocalDeleteForm(HANDLE hPrinter, PWSTR pFormName);
252BOOL WINAPI LocalEnumForms(HANDLE hPrinter, DWORD Level, PBYTE pForm, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned);
253BOOL WINAPI LocalGetForm(HANDLE hPrinter, PWSTR pFormName, DWORD Level, PBYTE pForm, DWORD cbBuf, PDWORD pcbNeeded);
254BOOL WINAPI LocalSetForm(HANDLE hPrinter, PWSTR pFormName, DWORD Level, PBYTE pForm);
255
256// jobs.c
259void FreeJob(PLOCAL_JOB pJob);
260DWORD GetJobFilePath(PCWSTR pwszExtension, DWORD dwJobID, PWSTR pwszOutput);
264BOOL WINAPI LocalEnumJobs(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, DWORD Level, PBYTE pStart, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
265BOOL WINAPI LocalGetJob(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pStart, DWORD cbBuf, LPDWORD pcbNeeded);
266BOOL WINAPI LocalScheduleJob(HANDLE hPrinter, DWORD dwJobID);
267BOOL WINAPI LocalSetJob(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pJobInfo, DWORD Command);
269BOOL WriteJobShadowFile(PWSTR pwszFilePath, const PLOCAL_JOB pJob);
270
271// main.c
272extern const WCHAR wszCurrentEnvironment[];
273extern const DWORD cbCurrentEnvironment;
274extern const DWORD dwSpoolerMajorVersion;
275extern const DWORD dwSpoolerMinorVersion;
276extern const WCHAR wszDefaultDocumentName[];
277extern HKEY hPrintKey;
278extern HKEY hPrintersKey;
284
285// monitors.c
291BOOL WINAPI LocalDeleteMonitor(PWSTR pName, PWSTR pEnvironment, PWSTR pMonitorName);
292
293// ports.c
294PLOCAL_PORT FindPort(PCWSTR pwszName);
301BOOL WINAPI LocalSetPort(PWSTR pName, PWSTR pPortName, DWORD dwLevel, PBYTE pPortInfo);
302BOOL CreatePortEntry( PCWSTR pwszName, PLOCAL_PRINT_MONITOR pPrintMonitor );
303
304// printerdata.c
307DWORD WINAPI LocalSetPrinterData(HANDLE hPrinter, PWSTR pValueName, DWORD Type, PBYTE pData, DWORD cbData);
309
310// printerdrivers.c
313BOOL WINAPI LocalAddPrinterDriverEx(LPWSTR pName, DWORD level, LPBYTE pDriverInfo, DWORD dwFileCopyFlags);
314BOOL WINAPI LocalGetPrinterDriver(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded);
316BOOL WINAPI LocalGetPrinterDriverEx(HANDLE hPrinter,LPWSTR pEnvironment,DWORD Level,LPBYTE pDriverInfo,DWORD cbBuf,LPDWORD pcbNeeded,DWORD dwClientMajorVersion,DWORD dwClientMinorVersion,PDWORD pdwServerMajorVersion,PDWORD pdwServerMinorVersion );
317BOOL WINAPI LocalEnumPrinterDrivers(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned);
318
319// wine codes
320typedef struct _PRINTENV_T
321{
328
330
331// printers.c
332extern SKIPLIST PrinterList;
336BOOL WINAPI LocalOpenPrinter(PWSTR lpPrinterName, HANDLE* phPrinter, PPRINTER_DEFAULTSW pDefault);
338BOOL WINAPI LocalReadPrinter(HANDLE hPrinter, PVOID pBuf, DWORD cbBuf, PDWORD pNoBytesRead);
341BOOL WINAPI LocalWritePrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf, LPDWORD pcWritten);
346
347// printingthread.c
349
350// printprocessors.c
351BOOL FindDatatype(const PLOCAL_PRINT_PROCESSOR pPrintProcessor, PCWSTR pwszDatatype);
354BOOL WINAPI LocalEnumPrintProcessorDatatypes(LPWSTR pName, LPWSTR pPrintProcessorName, DWORD Level, LPBYTE pDatatypes, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
355BOOL WINAPI LocalEnumPrintProcessors(LPWSTR pName, LPWSTR pEnvironment, DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
357
358// spoolfile.c
359BOOL WINAPI LocalGetSpoolFileInfo(HANDLE hPrinter,LPWSTR *pSpoolDir,LPHANDLE phFile,HANDLE hSpoolerProcess,HANDLE hAppProcess);
360BOOL WINAPI LocalCommitSpoolData(HANDLE hPrinter,DWORD cbCommit);
362
363// tools.c
366// wine codes
368
369// Xcv.c
370BOOL WINAPI LocalXcvData(HANDLE hXcv, const WCHAR* pszDataName, BYTE* pInputData, DWORD cbInputData, BYTE* pOutputData, DWORD cbOutputData, DWORD* pcbOutputNeeded, DWORD* pdwStatus);
371
372
373#endif
Type
Definition: Type.h:7
#define VOID
Definition: acefi.h:82
HWND hWnd
Definition: settings.c:17
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
BOOL Error
Definition: chkdsk.c:66
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
Definition: db.cpp:175
static LPCWSTR LPCWSTR LPCWSTR env
Definition: db.cpp:170
#define MAX_PATH
Definition: compat.h:34
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
FxAutoRegKey hKey
GLint level
Definition: gl.h:1546
GLenum target
Definition: glext.h:7315
static HANDLE hXcv
Definition: localmon.c:73
static LPSTR pName
Definition: security.c:75
#define BOOL
Definition: nt_native.h:43
#define LPDWORD
Definition: nt_native.h:46
#define DWORD
Definition: nt_native.h:44
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
BYTE * PBYTE
Definition: pedump.c:66
DWORD * PDWORD
Definition: pedump.c:68
long LONG
Definition: pedump.c:60
BOOL InitializeGlobalJobList(void)
Definition: jobs.c:161
struct _MONITORINIT * PMONITORINIT
struct _PRINTPROCESSOROPENDATA * PPRINTPROCESSOROPENDATA
struct _MONITOR2 * LPMONITOR2
struct _MONITOREX * LPMONITOREX
struct _MONITORUI * PMONITORUI
Definition: shell.h:41
Definition: typedefs.h:120
@ HandleType_PrintServer
Definition: precomp.h:204
@ HandleType_Xcv
Definition: precomp.h:205
@ HandleType_Printer
Definition: precomp.h:203
@ HandleType_Port
Definition: precomp.h:202
PVOID pSpecificHandle
Definition: precomp.h:208
enum _LOCAL_HANDLE::@5125 HandleType
DWORD dwStatus
Definition: precomp.h:159
DWORD dwPriority
Definition: precomp.h:146
HANDLE hPrintProcessor
Definition: precomp.h:143
PWSTR pwszStatus
Definition: precomp.h:154
DWORD dwPagesPrinted
Definition: precomp.h:156
SYSTEMTIME stSubmitted
Definition: precomp.h:147
DWORD dwStartTime
Definition: precomp.h:157
DWORD dwJobID
Definition: precomp.h:140
PLOCAL_PRINTER pPrinter
Definition: precomp.h:144
PWSTR pwszMachineName
Definition: precomp.h:160
PLOCAL_PRINT_PROCESSOR pPrintProcessor
Definition: precomp.h:145
DWORD dwTotalPages
Definition: precomp.h:155
BOOL bAddedJob
Definition: precomp.h:142
PDEVMODEW pDevMode
Definition: precomp.h:161
PWSTR pwszDatatype
Definition: precomp.h:151
PWSTR pwszUserName
Definition: precomp.h:148
PWSTR pwszNotifyName
Definition: precomp.h:149
PWSTR pwszOutputFile
Definition: precomp.h:152
PWSTR pwszPrintProcessorParameters
Definition: precomp.h:153
DWORD dwUntilTime
Definition: precomp.h:158
PWSTR pwszDocumentName
Definition: precomp.h:150
PLOCAL_PORT pPort
Definition: precomp.h:183
PWSTR pwszName
Definition: precomp.h:90
LIST_ENTRY Entry
Definition: precomp.h:89
PLOCAL_PRINT_MONITOR pPrintMonitor
Definition: precomp.h:91
PLOCAL_JOB pNextJobToProcess
Definition: precomp.h:92
PLOCAL_PRINTER pPrinter
Definition: precomp.h:171
PLOCAL_JOB pJob
Definition: precomp.h:172
PDEVMODEW pDevMode
Definition: precomp.h:174
PWSTR pwszDefaultDatatype
Definition: precomp.h:126
PLOCAL_PORT pPort
Definition: precomp.h:129
PWSTR pwszPrinterName
Definition: precomp.h:119
PWSTR pwszPrinterDriver
Definition: precomp.h:124
DWORD dwAttributes
Definition: precomp.h:121
PWSTR pwszLocation
Definition: precomp.h:123
PLOCAL_PRINT_PROCESSOR pPrintProcessor
Definition: precomp.h:128
PWSTR pwszDescription
Definition: precomp.h:125
PDEVMODEW pDefaultDevMode
Definition: precomp.h:127
SKIPLIST JobList
Definition: precomp.h:130
DWORD dwStatus
Definition: precomp.h:122
LIST_ENTRY Entry
Definition: precomp.h:73
PEnumPrintProcessorDatatypesW pfnEnumPrintProcessorDatatypesW
Definition: precomp.h:106
LIST_ENTRY Entry
Definition: precomp.h:100
PGetPrintProcessorCapabilities pfnGetPrintProcessorCapabilities
Definition: precomp.h:107
PControlPrintProcessor pfnControlPrintProcessor
Definition: precomp.h:105
PPrintDocumentOnPrintProcessor pfnPrintDocumentOnPrintProcessor
Definition: precomp.h:109
PClosePrintProcessor pfnClosePrintProcessor
Definition: precomp.h:104
POpenPrintProcessor pfnOpenPrintProcessor
Definition: precomp.h:108
PDATATYPES_INFO_1W pDatatypesInfo1
Definition: precomp.h:102
PLOCAL_PRINT_MONITOR pPrintMonitor
Definition: precomp.h:192
DWORD driverversion
Definition: precomp.h:324
LPCWSTR versionregpath
Definition: precomp.h:325
LPCWSTR versionsubdir
Definition: precomp.h:326
LPCWSTR subdir
Definition: precomp.h:323
LPCWSTR envname
Definition: precomp.h:322
DWORD dwTotalPages
Definition: precomp.h:238
DWORD dwUnknown5
Definition: precomp.h:243
DWORD cbSecurityDescriptor
Definition: precomp.h:239
DWORD dwUnknown3
Definition: precomp.h:241
DWORD offPort
Definition: precomp.h:227
DWORD dwJobID
Definition: precomp.h:222
DWORD offUserName
Definition: precomp.h:224
DWORD offMachineName
Definition: precomp.h:244
DWORD offDocumentName
Definition: precomp.h:226
DWORD offDriverName
Definition: precomp.h:229
DWORD offDatatype
Definition: precomp.h:232
DWORD dwPriority
Definition: precomp.h:223
DWORD offPrinterName
Definition: precomp.h:228
DWORD dwSPLSize
Definition: precomp.h:245
DWORD offPrintProcessor
Definition: precomp.h:231
DWORD cbHeader
Definition: precomp.h:219
DWORD offPrintProcessorParameters
Definition: precomp.h:233
DWORD dwSignature
Definition: precomp.h:218
DWORD offDevMode
Definition: precomp.h:230
DWORD dwUnknown4
Definition: precomp.h:242
DWORD dwUntilTime
Definition: precomp.h:236
DWORD dwStartTime
Definition: precomp.h:235
WORD wStatus
Definition: precomp.h:220
SYSTEMTIME stSubmitted
Definition: precomp.h:234
DWORD dwUnknown6
Definition: precomp.h:237
DWORD offNotifyName
Definition: precomp.h:225
WORD wUnknown1
Definition: precomp.h:221
DWORD offSecurityDescriptor
Definition: precomp.h:240
Definition: name.c:39
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
LPCSTR pText
Definition: txtscale.cpp:79
uint16_t * PWSTR
Definition: typedefs.h:56
const uint16_t * PCWSTR
Definition: typedefs.h:57
unsigned char * LPBYTE
Definition: typedefs.h:53
PVOID HANDLE
Definition: typedefs.h:73
uint32_t * LPDWORD
Definition: typedefs.h:59
_In_z_ PCWSTR pwszValueName
Definition: ntuser.h:42
BOOL WINAPI LocalSetPort(PWSTR pName, PWSTR pPortName, DWORD dwLevel, PBYTE pPortInfo)
Definition: ports.c:460
BOOL WINAPI LocalEnumMonitors(PWSTR pName, DWORD Level, PBYTE pMonitors, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
Definition: monitors.c:396
struct _LOCAL_PRINT_MONITOR * PLOCAL_PRINT_MONITOR
Definition: precomp.h:60
BOOL InitializePrintProcessorList(void)
DWORD WINAPI PrintingThreadProc(PLOCAL_JOB pJob)
const WCHAR wszDefaultDocumentName[]
Definition: main.c:25
struct _LOCAL_PORT * PLOCAL_PORT
Definition: precomp.h:58
DWORD cchJobDirectory
Definition: main.c:14
PLOCAL_PRINT_MONITOR FindPrintMonitor(PCWSTR pwszName)
Definition: monitors.c:28
BOOL WINAPI LocalEnumPrintProcessors(LPWSTR pName, LPWSTR pEnvironment, DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned)
BOOL WINAPI LocalGetJob(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pStart, DWORD cbBuf, LPDWORD pcbNeeded)
Definition: jobs.c:655
BOOL WINAPI LocalCloseSpoolFileHandle(HANDLE hPrinter)
Definition: spoolfile.c:30
struct _SHD_HEADER * PSHD_HEADER
Definition: precomp.h:65
BOOL WINAPI LocalEnumPrinters(DWORD Flags, LPWSTR Name, DWORD Level, LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned)
Definition: printers.c:884
DWORD WINAPI LocalPrinterMessageBox(HANDLE hPrinter, DWORD Error, HWND hWnd, LPWSTR pText, LPWSTR pCaption, DWORD dwType)
Definition: printers.c:1391
SKIPLIST GlobalJobList
Definition: jobs.c:11
BOOL WINAPI LocalConfigurePort(PWSTR pName, HWND hWnd, PWSTR pPortName)
Definition: ports.c:361
BOOL(WINAPI * PControlPrintProcessor)(HANDLE, DWORD)
Definition: precomp.h:46
BOOL WINAPI LocalAddPrinterDriver(LPWSTR pName, DWORD level, LPBYTE pDriverInfo)
DWORD WINAPI CreateJob(PLOCAL_PRINTER_HANDLE pPrinterHandle)
Definition: jobs.c:257
BOOL InitializePrintMonitorList(void)
Definition: monitors.c:126
LONG copy_servername_from_name(LPCWSTR name, LPWSTR target)
Definition: tools.c:89
BOOL WINAPI LocalAddPrinterDriverEx(LPWSTR pName, DWORD level, LPBYTE pDriverInfo, DWORD dwFileCopyFlags)
DWORD WINAPI LocalSetPrinterDataEx(HANDLE hPrinter, LPCWSTR pKeyName, LPCWSTR pValueName, DWORD Type, LPBYTE pData, DWORD cbData)
const DWORD dwSpoolerMajorVersion
Definition: main.c:22
struct _LOCAL_PRINTER * PLOCAL_PRINTER
Definition: precomp.h:62
BOOL WINAPI LocalScheduleJob(HANDLE hPrinter, DWORD dwJobID)
Definition: jobs.c:1112
BOOL WINAPI LocalDeleteMonitor(PWSTR pName, PWSTR pEnvironment, PWSTR pMonitorName)
Definition: monitors.c:724
LPMONITOR2(WINAPI * PInitializePrintMonitor2)(PMONITORINIT, PHANDLE)
Definition: precomp.h:52
BOOL(WINAPI * PClosePrintProcessor)(HANDLE)
Definition: precomp.h:45
struct _PRINTENV_T * PPRINTENV_T
PMONITORUI(WINAPI * PInitializePrintMonitorUI)(VOID)
Definition: precomp.h:53
BOOL WINAPI LocalWritePrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf, LPDWORD pcWritten)
WCHAR wszJobDirectory[MAX_PATH]
Definition: main.c:13
const WCHAR wszCurrentEnvironment[]
Definition: prtprocenv.h:11
struct _LOCAL_PORT_HANDLE * PLOCAL_PORT_HANDLE
Definition: precomp.h:59
BOOL WINAPI LocalAddJob(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf, LPDWORD pcbNeeded)
struct _LOCAL_XCV_HANDLE * PLOCAL_XCV_HANDLE
Definition: precomp.h:64
BOOL WINAPI LocalXcvData(HANDLE hXcv, const WCHAR *pszDataName, BYTE *pInputData, DWORD cbInputData, BYTE *pOutputData, DWORD cbOutputData, DWORD *pcbOutputNeeded, DWORD *pdwStatus)
Definition: xcv.c:140
LIST_ENTRY PrintMonitorList
Definition: monitors.c:11
BOOL WINAPI LocalAddPort(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName)
Definition: ports.c:286
BOOL InitializePrinterList(void)
Definition: printers.c:107
BOOL WINAPI LocalAddMonitor(PWSTR pName, DWORD Level, PBYTE pMonitors)
Definition: monitors.c:636
DWORD WINAPI LocalGetPrinterData(HANDLE hPrinter, PWSTR pValueName, PDWORD pType, PBYTE pData, DWORD nSize, PDWORD pcbNeeded)
Definition: printerdata.c:11
PDEVMODEW DuplicateDevMode(PDEVMODEW pInput)
Definition: tools.c:61
DWORD(WINAPI * PGetPrintProcessorCapabilities)(LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD)
Definition: precomp.h:48
BOOL WINAPI LocalSetJob(HANDLE hPrinter, DWORD JobId, DWORD Level, PBYTE pJobInfo, DWORD Command)
Definition: jobs.c:949
BOOL CreatePortEntry(PCWSTR pwszName, PLOCAL_PRINT_MONITOR pPrintMonitor)
Definition: ports.c:37
struct _PRINTENV_T PRINTENV_T
BOOL InitializePortList(void)
Definition: ports.c:60
void InitializePrinterJobList(PLOCAL_PRINTER pPrinter)
Definition: jobs.c:247
BOOL WINAPI LocalEndPagePrinter(HANDLE hPrinter)
Definition: printers.c:1834
BOOL WINAPI LocalSetForm(HANDLE hPrinter, PWSTR pFormName, DWORD Level, PBYTE pForm)
Definition: forms.c:682
PLOCAL_PRINT_PROCESSOR FindPrintProcessor(PCWSTR pwszName)
DWORD WINAPI LocalStartDocPrinter(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo)
BOOL WINAPI LocalAddForm(HANDLE hPrinter, DWORD Level, PBYTE pForm)
Definition: forms.c:409
BOOL WINAPI LocalStartPagePrinter(HANDLE hPrinter)
Definition: printers.c:1724
DWORD WINAPI LocalGetPrinterDataEx(HANDLE hPrinter, PCWSTR pKeyName, PCWSTR pValueName, PDWORD pType, PBYTE pData, DWORD nSize, PDWORD pcbNeeded)
Definition: printerdata.c:314
HKEY hPrintKey
Definition: main.c:11
BOOL WINAPI LocalGetPrintProcessorDirectory(LPWSTR pName, LPWSTR pEnvironment, DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf, LPDWORD pcbNeeded)
BOOL InitializeFormList(VOID)
Definition: forms.c:228
BOOL WINAPI LocalEnumForms(HANDLE hPrinter, DWORD Level, PBYTE pForm, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
Definition: forms.c:549
struct _LOCAL_PRINTER_HANDLE * PLOCAL_PRINTER_HANDLE
Definition: precomp.h:63
BOOL WINAPI LocalEnumJobs(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, DWORD Level, PBYTE pStart, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned)
Definition: jobs.c:1022
BOOL WINAPI LocalDeletePort(PWSTR pName, HWND hWnd, PWSTR pPortName)
Definition: ports.c:411
BOOL WINAPI LocalCommitSpoolData(HANDLE hPrinter, DWORD cbCommit)
Definition: spoolfile.c:23
BOOL WINAPI LocalReadPrinter(HANDLE hPrinter, PVOID pBuf, DWORD cbBuf, PDWORD pNoBytesRead)
Definition: printers.c:1534
HKEY hPrintersKey
Definition: main.c:12
PLOCAL_PORT FindPort(PCWSTR pwszName)
Definition: ports.c:15
BOOL WINAPI LocalGetForm(HANDLE hPrinter, PWSTR pFormName, DWORD Level, PBYTE pForm, DWORD cbBuf, PDWORD pcbNeeded)
Definition: forms.c:624
const DWORD cbCurrentEnvironment
BOOL WINAPI LocalAddPortEx(PWSTR pName, DWORD Level, PBYTE lpBuffer, PWSTR lpMonitorName)
Definition: ports.c:217
BOOL InitializePrinterDrivers(VOID)
BOOL FindDatatype(const PLOCAL_PRINT_PROCESSOR pPrintProcessor, PCWSTR pwszDatatype)
LPMONITOREX(WINAPI * PInitializePrintMonitor)(PWSTR)
Definition: precomp.h:51
BOOL WINAPI LocalEnumPorts(PWSTR pName, DWORD Level, PBYTE pPorts, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
Definition: ports.c:164
PWSTR AllocAndRegQueryWSZ(HKEY hKey, PCWSTR pwszValueName)
Definition: tools.c:26
DWORD GetJobFilePath(PCWSTR pwszExtension, DWORD dwJobID, PWSTR pwszOutput)
Definition: jobs.c:146
DWORD cchSpoolDirectory
Definition: main.c:16
struct _LOCAL_JOB * PLOCAL_JOB
Definition: precomp.h:57
VOID BroadcastChange(PLOCAL_HANDLE pHandle)
Definition: printers.c:350
BOOL WINAPI LocalGetSpoolFileInfo(HANDLE hPrinter, LPWSTR *pSpoolDir, LPHANDLE phFile, HANDLE hSpoolerProcess, HANDLE hAppProcess)
Definition: spoolfile.c:11
struct _LOCAL_PRINT_PROCESSOR * PLOCAL_PRINT_PROCESSOR
Definition: precomp.h:61
BOOL WINAPI LocalClosePrinter(HANDLE hPrinter)
Definition: printers.c:1960
BOOL WriteJobShadowFile(PWSTR pwszFilePath, const PLOCAL_JOB pJob)
Definition: jobs.c:1300
WCHAR wszSpoolDirectory[MAX_PATH]
Definition: main.c:15
BOOL(WINAPI * PPrintDocumentOnPrintProcessor)(HANDLE, LPWSTR)
Definition: precomp.h:50
BOOL(WINAPI * PEnumPrintProcessorDatatypesW)(LPWSTR, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD)
Definition: precomp.h:47
BOOL WINAPI LocalOpenPrinter(PWSTR lpPrinterName, HANDLE *phPrinter, PPRINTER_DEFAULTSW pDefault)
Definition: printers.c:1398
DWORD WINAPI LocalSetPrinterData(HANDLE hPrinter, PWSTR pValueName, DWORD Type, PBYTE pData, DWORD cbData)
Definition: printerdata.c:361
void FreeJob(PLOCAL_JOB pJob)
Definition: jobs.c:1452
BOOL WINAPI LocalDeleteForm(HANDLE hPrinter, PWSTR pFormName)
Definition: forms.c:499
struct _LOCAL_HANDLE * PLOCAL_HANDLE
Definition: precomp.h:56
BOOL WINAPI LocalGetPrinterDriverDirectory(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverDirectory, DWORD cbBuf, PDWORD pcbNeeded)
BOOL WINAPI LocalGetPrinter(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, DWORD cbBuf, LPDWORD pcbNeeded)
Definition: printers.c:985
BOOL WINAPI LocalEnumPrintProcessorDatatypes(LPWSTR pName, LPWSTR pPrintProcessorName, DWORD Level, LPBYTE pDatatypes, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned)
const DWORD dwSpoolerMinorVersion
Definition: main.c:23
BOOL WINAPI LocalGetPrinterDriver(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded)
PCWSTR wszPrintProviderInfo[3]
Definition: main.c:27
SKIPLIST PrinterList
Definition: printers.c:11
PLOCAL_JOB ReadJobShadowFile(PCWSTR pwszFilePath)
Definition: jobs.c:1187
PPRINTENV_T validate_envW(LPCWSTR env)
HANDLE(WINAPI * POpenPrintProcessor)(LPWSTR, PPRINTPROCESSOROPENDATA)
Definition: precomp.h:49
BOOL WINAPI LocalGetPrinterDriverEx(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded, DWORD dwClientMajorVersion, DWORD dwClientMinorVersion, PDWORD pdwServerMajorVersion, PDWORD pdwServerMinorVersion)
BOOL WINAPI LocalEnumPrinterDrivers(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
BOOL WINAPI LocalEndDocPrinter(HANDLE hPrinter)
Definition: printers.c:1857
*nSize LPSTR _Inout_ LPDWORD nSize
Definition: winbase.h:2109
_In_ DWORD _Out_ PDWORD pcbNeeded
Definition: winddi.h:3828
#define WINAPI
Definition: msvc.h:6
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
Definition: wmitypes.h:56
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
unsigned char BYTE
Definition: xxhash.c:193