EventMessageFile should be unquoted.
[nssm.git] / settings.h
1 #ifndef SETTINGS_H
2 #define SETTINGS_H
3
4 #define NSSM_NATIVE_DEPENDONGROUP _T("DependOnGroup")
5 #define NSSM_NATIVE_DEPENDONSERVICE _T("DependOnService")
6 #define NSSM_NATIVE_DESCRIPTION _T("Description")
7 #define NSSM_NATIVE_DISPLAYNAME _T("DisplayName")
8 #define NSSM_NATIVE_ENVIRONMENT _T("Environment")
9 #define NSSM_NATIVE_IMAGEPATH _T("ImagePath")
10 #define NSSM_NATIVE_NAME _T("Name")
11 #define NSSM_NATIVE_OBJECTNAME _T("ObjectName")
12 #define NSSM_NATIVE_STARTUP _T("Start")
13 #define NSSM_NATIVE_TYPE _T("Type")
14
15 /* Are additional arguments needed? */
16 #define ADDITIONAL_GETTING (1 << 0)
17 #define ADDITIONAL_SETTING (1 << 1)
18 #define ADDITIONAL_RESETTING (1 << 2)
19 #define ADDITIONAL_CRLF (1 << 3)
20 #define ADDITIONAL_MANDATORY ADDITIONAL_GETTING|ADDITIONAL_SETTING|ADDITIONAL_RESETTING
21
22 #define DEPENDENCY_SERVICES (1 << 0)
23 #define DEPENDENCY_GROUPS (1 << 1)
24 #define DEPENDENCY_ALL (DEPENDENCY_SERVICES|DEPENDENCY_GROUPS)
25
26 typedef union {
27   unsigned long numeric;
28   TCHAR *string;
29 } value_t;
30
31 typedef int (*setting_function_t)(const TCHAR *, void *, const TCHAR *, void *, value_t *, const TCHAR *);
32
33 typedef struct {
34   const TCHAR *name;
35   unsigned long type;
36   void *default_value;
37   bool native;
38   int additional;
39   setting_function_t set;
40   setting_function_t get;
41 } settings_t;
42
43 int set_setting(const TCHAR *, HKEY, settings_t *, value_t *, const TCHAR *);
44 int set_setting(const TCHAR *, SC_HANDLE, settings_t *, value_t *, const TCHAR *);
45 int get_setting(const TCHAR *, HKEY, settings_t *, value_t *, const TCHAR *);
46 int get_setting(const TCHAR *, SC_HANDLE, settings_t *, value_t *, const TCHAR *);
47
48 #endif