Fix missed files. Svn problem?
[reactos.git] / reactos / include / idl / svcctl.idl
1 /*
2 * Service Control Manager (SCM) interface definition
3 */
4
5 //#include <windef.h>
6 //#include <winsvc.h>
7
8 #define DWORD unsigned long
9 #define BOOL unsigned long
10 #define SC_HANDLE unsigned int
11 #define SC_LOCK unsigned int
12 #define LPSTR char*
13 #define LPCSTR char*
14 #define LPWSTR wchar_t*
15 #define LPCWSTR wchar_t*
16 #define LPDWORD unsigned long*
17
18 [
19 uuid(367abb81-9844-35f1-ad32-98f038001003),
20 version(2.0),
21 pointer_default(unique),
22 explicit_handle
23 ]
24 interface svcctl
25 {
26 cpp_quote("#if 0")
27 typedef struct _SERVICE_STATUS
28 {
29 DWORD dwServiceType;
30 DWORD dwCurrentState;
31 DWORD dwControlsAccepted;
32 DWORD dwWin32ExitCode;
33 DWORD dwServiceSpecificExitCode;
34 DWORD dwCheckPoint;
35 DWORD dwWaitHint;
36 } SERVICE_STATUS, *LPSERVICE_STATUS;
37 cpp_quote("#endif")
38
39 /* Function 0 */
40 DWORD ScmrCloseServiceHandle([in] handle_t BindingHandle,
41 [in] SC_HANDLE hSCObject);
42
43 /* Function 1 */
44 BOOL ScmrControlService([in] handle_t BindingHandle,
45 [in] SC_HANDLE hService,
46 [in] DWORD dwControl,
47 [out] LPSERVICE_STATUS lpServiceStatus);
48
49 /* Function 2 */
50 DWORD ScmrDeleteService([in] handle_t BindingHandle,
51 [in] SC_HANDLE hService);
52
53 /* Function 3 */
54 DWORD ScmrLockServiceDatabase([in] handle_t BindingHandle,
55 [in] SC_HANDLE hSCManager,
56 [out] SC_LOCK *hLock);
57
58 /* Function 4 */
59 DWORD ScmrQueryServiceObjectSecurity([in] handle_t BindingHandle); /* FIXME */
60
61 /* Function 5 */
62 DWORD ScmrSetServiceObjectSecurity([in] handle_t BindingHandle); /* FIXME */
63
64 /* Function 6 */
65 DWORD ScmrQueryServiceStatus([in] handle_t BindingHandle,
66 [in] SC_HANDLE hSCManager,
67 [out] LPSERVICE_STATUS lpServiceStatus);
68
69 /* Function 7 */
70 DWORD ScmrSetServiceStatus([in] handle_t BindingHandle); /* FIXME */
71
72 /* Function 8 */
73 DWORD ScmrUnlockServiceDatabase([in] handle_t BindingHandle,
74 [in] SC_LOCK hLock);
75
76 /* Function 9 */
77 DWORD ScmrNotifyBootConfigStatus([in] handle_t BindingHandle,
78 [in] BOOL BootAcceptable);
79
80
81 /* Function 11 */
82 DWORD ScmrChangeServiceConfigW([in] handle_t BindingHandle,
83 [in] SC_HANDLE hSCManager,
84 [in] DWORD dwServiceType,
85 [in] DWORD dwStartType,
86 [in] DWORD dwErrorControl,
87 [in, string, unique] LPCWSTR lpBinaryPathName,
88 [in, string, unique] LPCWSTR lpLoadOrderGroup,
89 [in, out, unique] LPDWORD lpdwTagId,
90 [in, size_is(dwDependenciesLength), unique] LPCWSTR lpDependencies,
91 [in] DWORD dwDependenciesLength,
92 [in, string, unique] LPCWSTR lpServiceStartName,
93 [in, size_is(dwPasswordLength), unique] LPCWSTR lpPassword,
94 [in] DWORD dwPasswordLength,
95 [in, string, unique] LPCWSTR lpDisplayName);
96
97 /* Function 12 */
98 DWORD ScmrCreateServiceW([in] handle_t BindingHandle,
99 [in] SC_HANDLE hSCManager,
100 [in, string, ref] LPCWSTR lpServiceName,
101 [in, string, unique] LPCWSTR lpDisplayName,
102 [in] DWORD dwDesiredAccess,
103 [in] DWORD dwServiceType,
104 [in] DWORD dwStartType,
105 [in] DWORD dwErrorControl,
106 [in, string, ref] LPCWSTR lpBinaryPathName,
107 [in, string, unique] LPCWSTR lpLoadOrderGroup,
108 [in, out, unique] LPDWORD lpdwTagId,
109 [in, size_is(dwDependenciesLength), unique] LPCWSTR lpDependencies,
110 [in] DWORD dwDependenciesLength,
111 [in, string, unique] LPCWSTR lpServiceStartName,
112 [in, size_is(dwPasswordLength), unique] LPCWSTR lpPassword,
113 [in] DWORD dwPasswordLength,
114 [out] SC_HANDLE *hService);
115
116
117 /* Function 15 */
118 DWORD ScmrOpenSCManagerW([in] handle_t BindingHandle,
119 [in, string, unique] LPCWSTR lpMachineName,
120 [in, string, unique] LPCWSTR lpDatabaseName,
121 [in] DWORD dwDesiredAccess,
122 [out] SC_HANDLE *hScm);
123
124 /* Function 16 */
125 SC_HANDLE ScmrOpenServiceW([in] handle_t BindingHandle,
126 [in] SC_HANDLE hSCManager,
127 [in, string] LPCWSTR lpServiceName,
128 [in] DWORD dwDesiredAccess,
129 [out] SC_HANDLE *hScm);
130
131
132 /* Function 20 */
133 DWORD ScmrGetServiceDisplayNameW([in] handle_t BindingHandle,
134 [in] SC_HANDLE hSCManager,
135 [in, string, ref] LPCWSTR lpServiceName,
136 [out, size_is(*lpcchBuffer), unique] LPWSTR lpDisplayName,
137 [in, out, ref] LPDWORD lpcchBuffer);
138
139 /* Function 21 */
140 DWORD ScmrGetServiceKeyNameW([in] handle_t BindingHandle,
141 [in] SC_HANDLE hSCManager,
142 [in, string, ref] LPCWSTR lpDisplayName,
143 [out, size_is(*lpcchBuffer), unique] LPWSTR lpServiceName,
144 [in, out, ref] LPDWORD lpcchBuffer);
145
146
147 /* Function 27 */
148 DWORD ScmrOpenSCManagerA([in] handle_t BindingHandle,
149 [in, string, unique] LPCSTR lpMachineName,
150 [in, string, unique] LPCSTR lpDatabaseName,
151 [in] DWORD dwDesiredAccess,
152 [out] SC_HANDLE *hScm);
153
154 /* Function 28 */
155 SC_HANDLE ScmrOpenServiceA([in] handle_t BindingHandle,
156 [in] SC_HANDLE hSCManager,
157 [in, string] LPCSTR lpServiceName,
158 [in] DWORD dwDesiredAccess,
159 [out] SC_HANDLE *hScm);
160 }