VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/winsvc.h@ 33281

Last change on this file since 33281 was 16477, checked in by vboxsync, 16 years ago

LGPL disclaimer by filemuncher

  • Property svn:eol-style set to native
File size: 16.9 KB
Line 
1/*
2 * Copyright (C) the Wine project
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19/*
20 * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
21 * other than GPL or LGPL is available it will apply instead, Sun elects to use only
22 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
23 * a choice of LGPL license versions is made available with the language indicating
24 * that LGPLv2 or any later version may be used, or where a choice of which version
25 * of the LGPL is applied is otherwise unspecified.
26 */
27
28#ifndef __WINE_WINSVC_H
29#define __WINE_WINSVC_H
30
31#ifdef __cplusplus
32extern "C" {
33#endif /* defined(__cplusplus) */
34
35#ifdef _ADVAPI32_
36#define WINADVAPI
37#else
38#define WINADVAPI DECLSPEC_IMPORT
39#endif
40
41/* Service database names */
42#define SERVICES_ACTIVE_DATABASEA "ServicesActive"
43#define SERVICES_FAILED_DATABASEA "ServicesFailed"
44
45#if defined(__GNUC__)
46# define SERVICES_ACTIVE_DATABASEW (const WCHAR []){ 'S','e','r','v','i','c','e','s','A','c','t','i','v','e',0 }
47# define SERVICES_FAILED_DATABASEW (const WCHAR []){ 'S','e','r','v','i','c','e','s','F','a','i','l','e','d',0 }
48#elif defined(_MSC_VER)
49# define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
50# define SERVICES_FAILED_DATABASEW L"ServicesFailed"
51#endif
52
53#define SERVICES_ACTIVE_DATABASE WINELIB_NAME_AW( SERVICES_ACTIVE_DATABASE )
54#define SERVICES_FAILED_DATABASE WINELIB_NAME_AW( SERVICES_FAILED_DATABASE )
55
56/* Service State requests */
57#define SERVICE_ACTIVE 0x00000001
58#define SERVICE_INACTIVE 0x00000002
59#define SERVICE_STATE_ALL (SERVICE_ACTIVE | SERVICE_INACTIVE)
60
61/* Controls */
62#define SERVICE_CONTROL_STOP 0x00000001
63#define SERVICE_CONTROL_PAUSE 0x00000002
64#define SERVICE_CONTROL_CONTINUE 0x00000003
65#define SERVICE_CONTROL_INTERROGATE 0x00000004
66#define SERVICE_CONTROL_SHUTDOWN 0x00000005
67#define SERVICE_CONTROL_PARAMCHANGE 0x00000006
68#define SERVICE_CONTROL_NETBINDADD 0x00000007
69#define SERVICE_CONTROL_NETBINDREMOVE 0x00000008
70#define SERVICE_CONTROL_NETBINDENABLE 0x00000009
71#define SERVICE_CONTROL_NETBINDDISABLE 0x0000000A
72#define SERVICE_CONTROL_DEVICEEVENT 0x0000000B
73#define SERVICE_CONTROL_HARDWAREPROFILECHANGE 0x0000000C
74#define SERVICE_CONTROL_POWEREVENT 0x0000000D
75#define SERVICE_CONTROL_SESSIONCHANGE 0x0000000E
76
77/* Service State */
78#define SERVICE_STOPPED 0x00000001
79#define SERVICE_START_PENDING 0x00000002
80#define SERVICE_STOP_PENDING 0x00000003
81#define SERVICE_RUNNING 0x00000004
82#define SERVICE_CONTINUE_PENDING 0x00000005
83#define SERVICE_PAUSE_PENDING 0x00000006
84#define SERVICE_PAUSED 0x00000007
85
86/* Controls Accepted */
87#define SERVICE_ACCEPT_STOP 0x00000001
88#define SERVICE_ACCEPT_PAUSE_CONTINUE 0x00000002
89#define SERVICE_ACCEPT_SHUTDOWN 0x00000004
90#define SERVICE_ACCEPT_PARAMCHANGE 0x00000008
91#define SERVICE_ACCEPT_NETBINDCHANGE 0x00000010
92#define SERVICE_ACCEPT_HARDWAREPROFILECHANGE 0x00000020
93#define SERVICE_ACCEPT_POWEREVENT 0x00000040
94#define SERVICE_ACCEPT_SESSIONCHANGE 0x00000080
95
96/* Service Control Manager Object access types */
97#define SC_MANAGER_CONNECT 0x0001
98#define SC_MANAGER_CREATE_SERVICE 0x0002
99#define SC_MANAGER_ENUMERATE_SERVICE 0x0004
100#define SC_MANAGER_LOCK 0x0008
101#define SC_MANAGER_QUERY_LOCK_STATUS 0x0010
102#define SC_MANAGER_MODIFY_BOOT_CONFIG 0x0020
103#define SC_MANAGER_ALL_ACCESS ( STANDARD_RIGHTS_REQUIRED | \
104 SC_MANAGER_CONNECT | \
105 SC_MANAGER_CREATE_SERVICE | \
106 SC_MANAGER_ENUMERATE_SERVICE | \
107 SC_MANAGER_LOCK | \
108 SC_MANAGER_QUERY_LOCK_STATUS | \
109 SC_MANAGER_MODIFY_BOOT_CONFIG )
110
111#define SERVICE_QUERY_CONFIG 0x0001
112#define SERVICE_CHANGE_CONFIG 0x0002
113#define SERVICE_QUERY_STATUS 0x0004
114#define SERVICE_ENUMERATE_DEPENDENTS 0x0008
115#define SERVICE_START 0x0010
116#define SERVICE_STOP 0x0020
117#define SERVICE_PAUSE_CONTINUE 0x0040
118#define SERVICE_INTERROGATE 0x0080
119#define SERVICE_USER_DEFINED_CONTROL 0x0100
120
121#define SERVICE_ALL_ACCESS ( STANDARD_RIGHTS_REQUIRED | \
122 SERVICE_QUERY_CONFIG | \
123 SERVICE_CHANGE_CONFIG | \
124 SERVICE_QUERY_STATUS | \
125 SERVICE_ENUMERATE_DEPENDENTS | \
126 SERVICE_START | \
127 SERVICE_STOP | \
128 SERVICE_PAUSE_CONTINUE | \
129 SERVICE_INTERROGATE | \
130 SERVICE_USER_DEFINED_CONTROL )
131
132#define SERVICE_NO_CHANGE 0xffffffff
133
134
135/* Handle types */
136
137DECLARE_HANDLE(SC_HANDLE);
138typedef SC_HANDLE *LPSC_HANDLE;
139DECLARE_HANDLE(SERVICE_STATUS_HANDLE);
140typedef LPVOID SC_LOCK;
141
142/* Service status structure */
143
144typedef struct _SERVICE_STATUS {
145 DWORD dwServiceType;
146 DWORD dwCurrentState;
147 DWORD dwControlsAccepted;
148 DWORD dwWin32ExitCode;
149 DWORD dwServiceSpecificExitCode;
150 DWORD dwCheckPoint;
151 DWORD dwWaitHint;
152} SERVICE_STATUS, *LPSERVICE_STATUS;
153
154/* Service status process structure */
155
156typedef struct _SERVICE_STATUS_PROCESS
157{
158 DWORD dwServiceType;
159 DWORD dwCurrentState;
160 DWORD dwControlsAccepted;
161 DWORD dwWin32ExitCode;
162 DWORD dwServiceSpecificExitCode;
163 DWORD dwCheckPoint;
164 DWORD dwWaitHint;
165 DWORD dwProcessId;
166 DWORD dwServiceFlags;
167} SERVICE_STATUS_PROCESS, *LPSERVICE_STATUS_PROCESS;
168
169typedef enum _SC_STATUS_TYPE {
170 SC_STATUS_PROCESS_INFO = 0
171} SC_STATUS_TYPE;
172
173/* Service main function prototype */
174
175typedef VOID (CALLBACK *LPSERVICE_MAIN_FUNCTIONA)(DWORD,LPSTR*);
176typedef VOID (CALLBACK *LPSERVICE_MAIN_FUNCTIONW)(DWORD,LPWSTR*);
177DECL_WINELIB_TYPE_AW(LPSERVICE_MAIN_FUNCTION)
178
179/* Service start table */
180
181typedef struct _SERVICE_TABLE_ENTRYA {
182 LPSTR lpServiceName;
183 LPSERVICE_MAIN_FUNCTIONA lpServiceProc;
184} SERVICE_TABLE_ENTRYA, *LPSERVICE_TABLE_ENTRYA;
185
186typedef struct _SERVICE_TABLE_ENTRYW {
187 LPWSTR lpServiceName;
188 LPSERVICE_MAIN_FUNCTIONW lpServiceProc;
189} SERVICE_TABLE_ENTRYW, *LPSERVICE_TABLE_ENTRYW;
190
191DECL_WINELIB_TYPE_AW(SERVICE_TABLE_ENTRY)
192DECL_WINELIB_TYPE_AW(LPSERVICE_TABLE_ENTRY)
193
194/* Service status enumeration structure */
195
196typedef struct _ENUM_SERVICE_STATUSA {
197 LPSTR lpServiceName;
198 LPSTR lpDisplayName;
199 SERVICE_STATUS ServiceStatus;
200} ENUM_SERVICE_STATUSA, *LPENUM_SERVICE_STATUSA;
201
202typedef struct _ENUM_SERVICE_STATUSW {
203 LPWSTR lpServiceName;
204 LPWSTR lpDisplayName;
205 SERVICE_STATUS ServiceStatus;
206} ENUM_SERVICE_STATUSW, *LPENUM_SERVICE_STATUSW;
207
208DECL_WINELIB_TYPE_AW(ENUM_SERVICE_STATUS)
209DECL_WINELIB_TYPE_AW(LPENUM_SERVICE_STATUS)
210
211typedef struct _ENUM_SERVICE_STATUS_PROCESSA {
212 LPSTR lpServiceName;
213 LPSTR lpDisplayName;
214 SERVICE_STATUS_PROCESS ServiceStatusProcess;
215} ENUM_SERVICE_STATUS_PROCESSA, *LPENUM_SERVICE_STATUS_PROCESSA;
216
217typedef struct _ENUM_SERVICE_STATUS_PROCESSW {
218 LPWSTR lpServiceName;
219 LPWSTR lpDisplayName;
220 SERVICE_STATUS_PROCESS ServiceStatusProcess;
221} ENUM_SERVICE_STATUS_PROCESSW, *LPENUM_SERVICE_STATUS_PROCESSW;
222
223DECL_WINELIB_TYPE_AW(ENUM_SERVICE_STATUS_PROCESS)
224DECL_WINELIB_TYPE_AW(LPENUM_SERVICE_STATUS_PROCESS)
225
226typedef enum _SC_ENUM_TYPE {
227 SC_ENUM_PROCESS_INFO = 0
228} SC_ENUM_TYPE;
229
230typedef struct _QUERY_SERVICE_CONFIGA {
231 DWORD dwServiceType;
232 DWORD dwStartType;
233 DWORD dwErrorControl;
234 LPSTR lpBinaryPathName;
235 LPSTR lpLoadOrderGroup;
236 DWORD dwTagId;
237 LPSTR lpDependencies;
238 LPSTR lpServiceStartName;
239 LPSTR lpDisplayName;
240} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
241
242typedef struct _QUERY_SERVICE_CONFIGW {
243 DWORD dwServiceType;
244 DWORD dwStartType;
245 DWORD dwErrorControl;
246 LPWSTR lpBinaryPathName;
247 LPWSTR lpLoadOrderGroup;
248 DWORD dwTagId;
249 LPWSTR lpDependencies;
250 LPWSTR lpServiceStartName;
251 LPWSTR lpDisplayName;
252} QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;
253
254/* defines and structures for ChangeServiceConfig2 */
255#define SERVICE_CONFIG_DESCRIPTION 1
256#define SERVICE_CONFIG_FAILURE_ACTIONS 2
257#define SERVICE_CONFIG_DELAYED_AUTO_START_INFO 3
258#define SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 4
259#define SERVICE_CONFIG_SERVICE_SID_INFO 5
260#define SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 6
261#define SERVICE_CONFIG_PRESHUTDOWN_INFO 7
262
263
264typedef struct _SERVICE_DESCRIPTIONA {
265 LPSTR lpDescription;
266} SERVICE_DESCRIPTIONA,*LPSERVICE_DESCRIPTIONA;
267
268typedef struct _SERVICE_DESCRIPTIONW {
269 LPWSTR lpDescription;
270} SERVICE_DESCRIPTIONW,*LPSERVICE_DESCRIPTIONW;
271
272DECL_WINELIB_TYPE_AW(SERVICE_DESCRIPTION)
273DECL_WINELIB_TYPE_AW(LPSERVICE_DESCRIPTION)
274
275typedef enum _SC_ACTION_TYPE {
276 SC_ACTION_NONE = 0,
277 SC_ACTION_RESTART = 1,
278 SC_ACTION_REBOOT = 2,
279 SC_ACTION_RUN_COMMAND = 3
280} SC_ACTION_TYPE;
281
282typedef struct _SC_ACTION {
283 SC_ACTION_TYPE Type;
284 DWORD Delay;
285} SC_ACTION,*LPSC_ACTION;
286
287typedef struct _SERVICE_FAILURE_ACTIONSA {
288 DWORD dwResetPeriod;
289 LPSTR lpRebootMsg;
290 LPSTR lpCommand;
291 DWORD cActions;
292 SC_ACTION * lpsaActions;
293} SERVICE_FAILURE_ACTIONSA,*LPSERVICE_FAILURE_ACTIONSA;
294
295typedef struct _SERVICE_FAILURE_ACTIONSW {
296 DWORD dwResetPeriod;
297 LPWSTR lpRebootMsg;
298 LPWSTR lpCommand;
299 DWORD cActions;
300 SC_ACTION * lpsaActions;
301} SERVICE_FAILURE_ACTIONSW,*LPSERVICE_FAILURE_ACTIONSW;
302
303DECL_WINELIB_TYPE_AW(SERVICE_FAILURE_ACTIONS)
304DECL_WINELIB_TYPE_AW(LPSERVICE_FAILURE_ACTIONS)
305
306typedef struct _QUERY_SERVICE_LOCK_STATUSA
307{
308 DWORD fIsLocked;
309 LPSTR lpLockOwner;
310 DWORD dwLockDuration;
311} QUERY_SERVICE_LOCK_STATUSA, *LPQUERY_SERVICE_LOCK_STATUSA;
312
313typedef struct _QUERY_SERVICE_LOCK_STATUSW
314{
315 DWORD fIsLocked;
316 LPWSTR lpLockOwner;
317 DWORD dwLockDuration;
318} QUERY_SERVICE_LOCK_STATUSW, *LPQUERY_SERVICE_LOCK_STATUSW;
319
320DECL_WINELIB_TYPE_AW(QUERY_SERVICE_LOCK_STATUS)
321
322/* Service control handler function prototype */
323
324typedef VOID (WINAPI *LPHANDLER_FUNCTION)(DWORD);
325typedef DWORD (WINAPI *LPHANDLER_FUNCTION_EX)(DWORD,DWORD,LPVOID,LPVOID);
326
327/* API function prototypes */
328
329WINADVAPI BOOL WINAPI ChangeServiceConfigA(SC_HANDLE,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,LPDWORD,LPCSTR,LPCSTR,LPCSTR,LPCSTR);
330WINADVAPI BOOL WINAPI ChangeServiceConfigW(SC_HANDLE,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,LPDWORD,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
331#define ChangeServiceConfig WINELIB_NAME_AW(ChangeServiceConfig)
332WINADVAPI BOOL WINAPI ChangeServiceConfig2A(SC_HANDLE,DWORD,LPVOID);
333WINADVAPI BOOL WINAPI ChangeServiceConfig2W(SC_HANDLE,DWORD,LPVOID);
334#define ChangeServiceConfig2 WINELIB_NAME_AW(ChangeServiceConfig2)
335WINADVAPI BOOL WINAPI CloseServiceHandle(SC_HANDLE);
336WINADVAPI BOOL WINAPI ControlService(SC_HANDLE,DWORD,LPSERVICE_STATUS);
337WINADVAPI SC_HANDLE WINAPI CreateServiceA(SC_HANDLE,LPCSTR,LPCSTR,DWORD,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,LPDWORD,LPCSTR,LPCSTR,LPCSTR);
338WINADVAPI SC_HANDLE WINAPI CreateServiceW(SC_HANDLE,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,LPDWORD,LPCWSTR,LPCWSTR,LPCWSTR);
339#define CreateService WINELIB_NAME_AW(CreateService)
340WINADVAPI BOOL WINAPI DeleteService(SC_HANDLE);
341WINADVAPI BOOL WINAPI EnumDependentServicesA(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSA,DWORD,LPDWORD,LPDWORD);
342WINADVAPI BOOL WINAPI EnumDependentServicesW(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSW,DWORD,LPDWORD,LPDWORD);
343#define EnumDependentServices WINELIB_NAME_AW(EnumDependentServices)
344WINADVAPI BOOL WINAPI EnumServicesStatusA(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSA,DWORD,LPDWORD,LPDWORD,LPDWORD);
345WINADVAPI BOOL WINAPI EnumServicesStatusW(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSW,DWORD,LPDWORD,LPDWORD,LPDWORD);
346#define EnumServicesStatus WINELIB_NAME_AW(EnumServicesStatus)
347WINADVAPI BOOL WINAPI EnumServicesStatusExA(SC_HANDLE,SC_ENUM_TYPE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD,LPDWORD,LPDWORD,LPCSTR);
348WINADVAPI BOOL WINAPI EnumServicesStatusExW(SC_HANDLE,SC_ENUM_TYPE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD,LPDWORD,LPDWORD,LPCWSTR);
349#define EnumServicesStatus WINELIB_NAME_AW(EnumServicesStatus)
350WINADVAPI BOOL WINAPI GetServiceDisplayNameA(SC_HANDLE,LPCSTR,LPSTR,LPDWORD);
351WINADVAPI BOOL WINAPI GetServiceDisplayNameW(SC_HANDLE,LPCWSTR,LPWSTR,LPDWORD);
352#define GetServiceDisplayName WINELIB_NAME_AW(GetServiceDisplayName)
353WINADVAPI BOOL WINAPI GetServiceKeyNameA(SC_HANDLE,LPCSTR,LPSTR,LPDWORD);
354WINADVAPI BOOL WINAPI GetServiceKeyNameW(SC_HANDLE,LPCWSTR,LPWSTR,LPDWORD);
355#define GetServiceKeyName WINELIB_NAME_AW(GetServiceKeyName)
356WINADVAPI SC_LOCK WINAPI LockServiceDatabase(SC_HANDLE);
357WINADVAPI BOOL WINAPI NotifyBootConfigStatus(BOOL);
358WINADVAPI SC_HANDLE WINAPI OpenSCManagerA(LPCSTR,LPCSTR,DWORD);
359WINADVAPI SC_HANDLE WINAPI OpenSCManagerW(LPCWSTR,LPCWSTR,DWORD);
360#define OpenSCManager WINELIB_NAME_AW(OpenSCManager)
361WINADVAPI SC_HANDLE WINAPI OpenServiceA(SC_HANDLE,LPCSTR,DWORD);
362WINADVAPI SC_HANDLE WINAPI OpenServiceW(SC_HANDLE,LPCWSTR,DWORD);
363#define OpenService WINELIB_NAME_AW(OpenService)
364WINADVAPI BOOL WINAPI QueryServiceStatus(SC_HANDLE,LPSERVICE_STATUS);
365WINADVAPI BOOL WINAPI QueryServiceStatusEx(SC_HANDLE,SC_STATUS_TYPE,LPBYTE,DWORD,LPDWORD);
366WINADVAPI BOOL WINAPI QueryServiceConfigA(SC_HANDLE,LPQUERY_SERVICE_CONFIGA,DWORD,LPDWORD);
367WINADVAPI BOOL WINAPI QueryServiceConfigW(SC_HANDLE,LPQUERY_SERVICE_CONFIGW,DWORD,LPDWORD);
368#define QueryServiceConfig WINELIB_NAME_AW(QueryServiceConfig)
369WINADVAPI BOOL WINAPI QueryServiceConfig2A(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
370WINADVAPI BOOL WINAPI QueryServiceConfig2W(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
371#define QueryServiceConfig2 WINELIB_NAME_AW(QueryServiceConfig2)
372WINADVAPI BOOL WINAPI QueryServiceLockStatusA(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSA,DWORD,LPDWORD);
373WINADVAPI BOOL WINAPI QueryServiceLockStatusW(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSW,DWORD,LPDWORD);
374#define QueryServiceLockStatus WINELIB_NAME_AW(QueryServiceLockStatus)
375WINADVAPI BOOL WINAPI QueryServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
376WINADVAPI SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerA(LPCSTR,LPHANDLER_FUNCTION);
377WINADVAPI SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerW(LPCWSTR,LPHANDLER_FUNCTION);
378#define RegisterServiceCtrlHandler WINELIB_NAME_AW(RegisterServiceCtrlHandler)
379WINADVAPI SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExA(LPCSTR,LPHANDLER_FUNCTION_EX,LPVOID);
380WINADVAPI SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR,LPHANDLER_FUNCTION_EX,LPVOID);
381#define RegisterServiceCtrlHandlerEx WINELIB_NAME_AW(RegisterServiceCtrlHandlerEx)
382WINADVAPI BOOL WINAPI SetServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
383WINADVAPI BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE,LPSERVICE_STATUS);
384WINADVAPI BOOL WINAPI StartServiceA(SC_HANDLE,DWORD,LPCSTR*);
385WINADVAPI BOOL WINAPI StartServiceW(SC_HANDLE,DWORD,LPCWSTR*);
386#define StartService WINELIB_NAME_AW(StartService)
387WINADVAPI BOOL WINAPI StartServiceCtrlDispatcherA(const SERVICE_TABLE_ENTRYA*);
388WINADVAPI BOOL WINAPI StartServiceCtrlDispatcherW(const SERVICE_TABLE_ENTRYW*);
389#define StartServiceCtrlDispatcher WINELIB_NAME_AW(StartServiceCtrlDispatcher)
390WINADVAPI BOOL WINAPI UnlockServiceDatabase(SC_LOCK);
391
392#ifdef __cplusplus
393} /* extern "C" */
394#endif /* defined(__cplusplus) */
395
396#endif /* !defined(__WINE_WINSVC_H) */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette