[PRINTING] Implement the undocumented MarshallDownStructure, MarshallDownStructuresAr...
[reactos.git] / win32ss / printing / base / spoolss / precomp.h
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