21640f19ec6a034374f4f9437b5e28790fc58aab
[reactos.git] / reactos / base / services / spoolsv / spoolsv.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: services/spoolsv/spoolsv.c
5 * PURPOSE: Printer spooler
6 * PROGRAMMER: Eric Kohl
7 */
8
9 /* INCLUDES *****************************************************************/
10
11 #define WIN32_NO_STATUS
12 #include <windows.h>
13
14 #define NDEBUG
15 #include <debug.h>
16
17 /* GLOBALS ******************************************************************/
18
19 #define SERVICE_NAME TEXT("Spooler")
20
21 SERVICE_STATUS_HANDLE ServiceStatusHandle;
22
23
24 /* FUNCTIONS *****************************************************************/
25
26
27 static DWORD WINAPI
28 ServiceControlHandler(DWORD dwControl,
29 DWORD dwEventType,
30 LPVOID lpEventData,
31 LPVOID lpContext)
32 {
33 switch (dwControl)
34 {
35 case SERVICE_CONTROL_STOP:
36 case SERVICE_CONTROL_SHUTDOWN:
37 return ERROR_SUCCESS;
38
39 default :
40 return ERROR_CALL_NOT_IMPLEMENTED;
41 }
42 }
43
44
45
46 static VOID CALLBACK
47 ServiceMain(DWORD argc, LPTSTR *argv)
48 {
49 UNREFERENCED_PARAMETER(argc);
50 UNREFERENCED_PARAMETER(argv);
51
52 DPRINT("ServiceMain() called\n");
53
54 ServiceStatusHandle = RegisterServiceCtrlHandlerExW(SERVICE_NAME,
55 ServiceControlHandler,
56 NULL);
57
58
59
60 DPRINT("ServiceMain() done\n");
61 }
62
63
64 int
65 wmain(int argc, WCHAR *argv[])
66 {
67 SERVICE_TABLE_ENTRY ServiceTable[2] =
68 {
69 {SERVICE_NAME, ServiceMain},
70 {NULL, NULL}
71 };
72
73 UNREFERENCED_PARAMETER(argc);
74 UNREFERENCED_PARAMETER(argv);
75
76 DPRINT("Spoolsv: main() started\n");
77
78 StartServiceCtrlDispatcher(ServiceTable);
79
80 DPRINT("Spoolsv: main() done\n");
81
82 ExitThread(0);
83
84 return 0;
85 }
86
87 /* EOF */