[SPOOLSS]
[reactos.git] / reactos / win32ss / printing / base / spoolss / main.c
1 /*
2 * PROJECT: ReactOS Spooler Router
3 * LICENSE: GNU LGPL v2.1 or any later version as published by the Free Software Foundation
4 * PURPOSE: Main functions
5 * COPYRIGHT: Copyright 2015 Colin Finck <colin@reactos.org>
6 */
7
8 #include "precomp.h"
9
10 PRINTPROVIDOR LocalSplFuncs;
11
12
13 BOOL WINAPI
14 ClosePrinter(HANDLE hPrinter)
15 {
16 return FALSE;
17 }
18
19 BOOL WINAPI
20 EndDocPrinter(HANDLE hPrinter)
21 {
22 return FALSE;
23 }
24
25 BOOL WINAPI
26 EndPagePrinter(HANDLE hPrinter)
27 {
28 return FALSE;
29 }
30
31 BOOL WINAPI
32 EnumPrintersW(DWORD Flags, LPWSTR Name, DWORD Level, LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned)
33 {
34 return FALSE;
35 }
36
37 BOOL WINAPI
38 GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded)
39 {
40 return FALSE;
41 }
42
43 BOOL WINAPI
44 GetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, DWORD cbBuf, LPDWORD pcbNeeded)
45 {
46 return FALSE;
47 }
48
49 BOOL WINAPI
50 GetPrintProcessorDirectoryW(LPWSTR pName, LPWSTR pEnvironment, DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf, LPDWORD pcbNeeded)
51 {
52 return FALSE;
53 }
54
55 BOOL WINAPI
56 InitializeRouter(HANDLE SpoolerStatusHandle)
57 {
58 HINSTANCE hinstLocalSpl;
59 PInitializePrintProvidor pfnInitializePrintProvidor;
60
61 // Only initialize localspl.dll for now.
62 // This function should later look for all available print providers in the registry and initialize all of them.
63 hinstLocalSpl = LoadLibraryW(L"localspl");
64 if (!hinstLocalSpl)
65 {
66 ERR("LoadLibraryW for localspl failed with error %lu!\n", GetLastError());
67 return FALSE;
68 }
69
70 pfnInitializePrintProvidor = (PInitializePrintProvidor)GetProcAddress(hinstLocalSpl, "InitializePrintProvidor");
71 if (!pfnInitializePrintProvidor)
72 {
73 ERR("GetProcAddress failed with error %lu!\n", GetLastError());
74 return FALSE;
75 }
76
77 if (!pfnInitializePrintProvidor(&LocalSplFuncs, sizeof(PRINTPROVIDOR), NULL))
78 {
79 ERR("InitializePrintProvidor failed for localspl with error %lu!\n", GetLastError());
80 return FALSE;
81 }
82
83 return TRUE;
84 }
85
86 BOOL WINAPI
87 OpenPrinterW(LPWSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSW pDefault)
88 {
89 return FALSE;
90 }
91
92 DWORD WINAPI
93 StartDocPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo)
94 {
95 return 0;
96 }
97
98 DWORD WINAPI
99 SpoolerInit()
100 {
101 // Nothing to do here yet
102 return ERROR_SUCCESS;
103 }
104
105 BOOL WINAPI
106 StartPagePrinter(HANDLE hPrinter)
107 {
108 return FALSE;
109 }
110
111 BOOL WINAPI
112 WritePrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf, LPDWORD pcWritten)
113 {
114 return FALSE;
115 }
116
117 BOOL WINAPI
118 XcvDataW(HANDLE hXcv, PCWSTR pszDataName, PBYTE pInputData, DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded, PDWORD pdwStatus)
119 {
120 return FALSE;
121 }