1 /*
2  * PROJECT:     ReactOS Spooler Router
3  * LICENSE:     GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4  * PURPOSE:     Precompiled Header for all source files
5  * COPYRIGHT:   Copyright 2015 Colin Finck (colin@reactos.org)
6  */
7 
8 #ifndef _PRECOMP_H
9 #define _PRECOMP_H
10 
11 #define WIN32_NO_STATUS
12 #include <windef.h>
13 #include <winbase.h>
14 #include <wingdi.h>
15 #include <winreg.h>
16 #include <winspool.h>
17 #include <winsplp.h>
18 #include <ndk/rtlfuncs.h>
19 
20 #include <spoolss.h>
21 #include <marshalling/marshalling.h>
22 
23 #include <wine/debug.h>
24 WINE_DEFAULT_DEBUG_CHANNEL(spoolss);
25 
26 // Function pointers
27 typedef BOOL (WINAPI *PInitializePrintProvidor)(LPPRINTPROVIDOR, DWORD, LPWSTR);
28 
29 // Structures
30 /**
31  * Describes a Print Provider.
32  */
33 typedef struct _SPOOLSS_PRINT_PROVIDER
34 {
35     LIST_ENTRY Entry;
36     PRINTPROVIDOR PrintProvider;
37 }
38 SPOOLSS_PRINT_PROVIDER, *PSPOOLSS_PRINT_PROVIDER;
39 
40 /*
41  * Describes a handle returned by OpenPrinterW.
42  * We can't just pass the handle returned by the Print Provider, because spoolss has to remember which Print Provider opened this handle.
43  */
44 typedef struct _SPOOLSS_PRINTER_HANDLE
45 {
46     PSPOOLSS_PRINT_PROVIDER pPrintProvider;         /** Pointer to the Print Provider that opened this printer. */
47     HANDLE hPrinter;                                /** The handle returned by fpOpenPrinter of the Print Provider and passed to subsequent Print Provider functions. */
48 }
49 SPOOLSS_PRINTER_HANDLE, *PSPOOLSS_PRINTER_HANDLE;
50 
51 // main.c
52 extern HANDLE hProcessHeap;
53 extern LIST_ENTRY PrintProviderList;
54 
55 #endif
56