496734ec6ae06f113ccfa7de6eaba8a448421234
[reactos.git] / reactos / base / applications / sc / sc.h
1 #ifndef _SC_PCH_
2 #define _SC_PCH_
3
4 #include <stdarg.h>
5
6 #include <windef.h>
7 #include <winbase.h>
8 #include <winsvc.h>
9 #include <sddl.h>
10 #include <tchar.h>
11
12 #define SCDBG
13
14 typedef struct
15 {
16 LPCTSTR lpServiceName;
17 LPCTSTR lpDisplayName;
18 DWORD dwServiceType;
19 DWORD dwStartType;
20 DWORD dwErrorControl;
21 LPCTSTR lpBinaryPathName;
22 LPCTSTR lpLoadOrderGroup;
23 DWORD dwTagId;
24 LPCTSTR lpDependencies;
25 LPCTSTR lpServiceStartName;
26 LPCTSTR lpPassword;
27
28 BOOL bTagId;
29 } SERVICE_CREATE_INFO, *LPSERVICE_CREATE_INFO;
30
31
32 /* control functions */
33 BOOL Start(LPCTSTR ServiceName, LPCTSTR *ServiceArgs, INT ArgCount);
34 BOOL Create(LPCTSTR *ServiceArgs, INT ArgCount);
35 BOOL Delete(LPCTSTR ServiceName);
36 BOOL Control(DWORD Control, LPCTSTR ServiceName, LPCTSTR *Args, INT ArgCount);
37 BOOL Query(LPCTSTR *ServiceArgs, DWORD ArgCount, BOOL bExtended);
38
39 LPSERVICE_STATUS_PROCESS QueryService(LPCTSTR ServiceName);
40 BOOL SdShow(LPCTSTR ServiceName);
41 BOOL SdSet(LPCTSTR ServiceName, LPCTSTR SecurityDescriptor);
42 BOOL QueryConfig(LPCTSTR ServiceName);
43 BOOL SetConfig(LPCTSTR *ServiceArgs, INT ArgCount);
44 BOOL QueryDescription(LPCTSTR ServiceName);
45 BOOL SetDescription(LPCTSTR ServiceName, LPCTSTR Description);
46 BOOL QueryFailure(LPCTSTR ServiceName);
47 BOOL SetFailure(LPCTSTR *ServiceArgs, INT ArgCount);
48 BOOL GetDisplayName(LPCTSTR ServiceName);
49 BOOL GetKeyName(LPCTSTR ServiceName);
50 BOOL EnumDepend(LPCTSTR ServiceName);
51
52 /* print and error functions */
53 VOID PrintService(LPCTSTR ServiceName, LPSERVICE_STATUS_PROCESS pStatus, BOOL bExtended);
54 VOID PrintServiceStatus(LPSERVICE_STATUS pStatus);
55 VOID ReportLastError(VOID);
56
57 /* misc.c */
58 BOOL
59 ParseCreateConfigArguments(
60 LPCTSTR *ServiceArgs,
61 INT ArgCount,
62 BOOL bChangeService,
63 OUT LPSERVICE_CREATE_INFO lpServiceInfo);
64
65 BOOL
66 ParseFailureArguments(
67 LPCTSTR *ServiceArgs,
68 INT ArgCount,
69 OUT LPCTSTR *ppServiceName,
70 OUT LPSERVICE_FAILURE_ACTIONS pFailureActions);
71
72 /* usage functions */
73 VOID MainUsage(VOID);
74 VOID StartUsage(VOID);
75 VOID PauseUsage(VOID);
76 VOID InterrogateUsage(VOID);
77 VOID ContinueUsage(VOID);
78 VOID StopUsage(VOID);
79 VOID DeleteUsage(VOID);
80 VOID CreateUsage(VOID);
81 VOID ControlUsage(VOID);
82 VOID SdShowUsage(VOID);
83 VOID SdSetUsage(VOID);
84 VOID QueryConfigUsage(VOID);
85 VOID QueryDescriptionUsage(VOID);
86 VOID QueryFailureUsage(VOID);
87 VOID SetDescriptionUsage(VOID);
88 VOID SetConfigUsage(VOID);
89 VOID SetFailureUsage(VOID);
90 VOID GetDisplayNameUsage(VOID);
91 VOID GetKeyNameUsage(VOID);
92 VOID EnumDependUsage(VOID);
93
94 #endif /* _SC_PCH_ */