X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=settings.h;h=80b5a350fbc4266ac2c578223f5302b471e62670;hb=d1c0d356f6ea58980a33f2fa2da1b6971dd9f909;hp=2fcffa5c0006a728699d11c71477c3aff53df097;hpb=66861c12e7d515f4d0e779102780d89e3fcd2a12;p=nssm.git diff --git a/settings.h b/settings.h index 2fcffa5..80b5a35 100644 --- a/settings.h +++ b/settings.h @@ -1,48 +1,50 @@ -#ifndef SETTINGS_H -#define SETTINGS_H - -#define NSSM_NATIVE_DEPENDONGROUP _T("DependOnGroup") -#define NSSM_NATIVE_DEPENDONSERVICE _T("DependOnService") -#define NSSM_NATIVE_DESCRIPTION _T("Description") -#define NSSM_NATIVE_DISPLAYNAME _T("DisplayName") -#define NSSM_NATIVE_ENVIRONMENT _T("Environment") -#define NSSM_NATIVE_IMAGEPATH _T("ImagePath") -#define NSSM_NATIVE_NAME _T("Name") -#define NSSM_NATIVE_OBJECTNAME _T("ObjectName") -#define NSSM_NATIVE_STARTUP _T("Start") -#define NSSM_NATIVE_TYPE _T("Type") - -/* Are additional arguments needed? */ -#define ADDITIONAL_GETTING (1 << 0) -#define ADDITIONAL_SETTING (1 << 1) -#define ADDITIONAL_RESETTING (1 << 2) -#define ADDITIONAL_CRLF (1 << 3) -#define ADDITIONAL_MANDATORY ADDITIONAL_GETTING|ADDITIONAL_SETTING|ADDITIONAL_RESETTING - -#define DEPENDENCY_SERVICES (1 << 0) -#define DEPENDENCY_GROUPS (1 << 1) -#define DEPENDENCY_ALL (DEPENDENCY_SERVICES|DEPENDENCY_GROUPS) - -typedef union { - unsigned long numeric; - TCHAR *string; -} value_t; - -typedef int (*setting_function_t)(const TCHAR *, void *, const TCHAR *, void *, value_t *, const TCHAR *); - -typedef struct { - const TCHAR *name; - unsigned long type; - void *default_value; - bool native; - int additional; - setting_function_t set; - setting_function_t get; -} settings_t; - -int set_setting(const TCHAR *, HKEY, settings_t *, value_t *, const TCHAR *); -int set_setting(const TCHAR *, SC_HANDLE, settings_t *, value_t *, const TCHAR *); -int get_setting(const TCHAR *, HKEY, settings_t *, value_t *, const TCHAR *); -int get_setting(const TCHAR *, SC_HANDLE, settings_t *, value_t *, const TCHAR *); - -#endif +#ifndef SETTINGS_H +#define SETTINGS_H + +#define NSSM_NATIVE_DEPENDONGROUP _T("DependOnGroup") +#define NSSM_NATIVE_DEPENDONSERVICE _T("DependOnService") +#define NSSM_NATIVE_DESCRIPTION _T("Description") +#define NSSM_NATIVE_DISPLAYNAME _T("DisplayName") +#define NSSM_NATIVE_ENVIRONMENT _T("Environment") +#define NSSM_NATIVE_IMAGEPATH _T("ImagePath") +#define NSSM_NATIVE_NAME _T("Name") +#define NSSM_NATIVE_OBJECTNAME _T("ObjectName") +#define NSSM_NATIVE_STARTUP _T("Start") +#define NSSM_NATIVE_TYPE _T("Type") + +/* Are additional arguments needed? */ +#define ADDITIONAL_GETTING (1 << 0) +#define ADDITIONAL_SETTING (1 << 1) +#define ADDITIONAL_RESETTING (1 << 2) +#define ADDITIONAL_CRLF (1 << 3) +#define ADDITIONAL_MANDATORY ADDITIONAL_GETTING|ADDITIONAL_SETTING|ADDITIONAL_RESETTING + +#define DEPENDENCY_SERVICES (1 << 0) +#define DEPENDENCY_GROUPS (1 << 1) +#define DEPENDENCY_ALL (DEPENDENCY_SERVICES|DEPENDENCY_GROUPS) + +typedef union { + unsigned long numeric; + TCHAR *string; +} value_t; + +typedef int (*setting_function_t)(const TCHAR *, void *, const TCHAR *, void *, value_t *, const TCHAR *); + +typedef struct { + const TCHAR *name; + unsigned long type; + void *default_value; + bool native; + int additional; + setting_function_t set; + setting_function_t get; + setting_function_t dump; +} settings_t; + +int set_setting(const TCHAR *, HKEY, settings_t *, value_t *, const TCHAR *); +int set_setting(const TCHAR *, SC_HANDLE, settings_t *, value_t *, const TCHAR *); +int get_setting(const TCHAR *, HKEY, settings_t *, value_t *, const TCHAR *); +int get_setting(const TCHAR *, SC_HANDLE, settings_t *, value_t *, const TCHAR *); +int dump_setting(const TCHAR *, HKEY, SC_HANDLE, settings_t *); + +#endif