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