X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=hook.h;h=85e211e48796062d122d24826c122dd87458541e;hb=d1c0d356f6ea58980a33f2fa2da1b6971dd9f909;hp=045e4aa3b1278f9d391f94e982a7fc8dc55d3195;hpb=2f2f64b07611fe0709bf4d502de7cac292dc1975;p=nssm.git diff --git a/hook.h b/hook.h index 045e4aa..85e211e 100644 --- a/hook.h +++ b/hook.h @@ -1,75 +1,75 @@ -#ifndef HOOK_H -#define HOOK_H - -#define NSSM_HOOK_EVENT_START _T("Start") -#define NSSM_HOOK_EVENT_STOP _T("Stop") -#define NSSM_HOOK_EVENT_EXIT _T("Exit") -#define NSSM_HOOK_EVENT_POWER _T("Power") -#define NSSM_HOOK_EVENT_ROTATE _T("Rotate") - -#define NSSM_HOOK_ACTION_PRE _T("Pre") -#define NSSM_HOOK_ACTION_POST _T("Post") -#define NSSM_HOOK_ACTION_CHANGE _T("Change") -#define NSSM_HOOK_ACTION_RESUME _T("Resume") - -/* Hook name will be " (/)" */ -#define HOOK_NAME_LENGTH SERVICE_NAME_LENGTH * 2 - -#define NSSM_HOOK_VERSION 1 - -/* Hook ran successfully. */ -#define NSSM_HOOK_STATUS_SUCCESS 0 -/* No hook configured. */ -#define NSSM_HOOK_STATUS_NOTFOUND 1 -/* Hook requested abort. */ -#define NSSM_HOOK_STATUS_ABORT 99 -/* Internal error launching hook. */ -#define NSSM_HOOK_STATUS_ERROR 100 -/* Hook was not run. */ -#define NSSM_HOOK_STATUS_NOTRUN 101 -/* Hook timed out. */ -#define NSSM_HOOK_STATUS_TIMEOUT 102 -/* Hook returned non-zero. */ -#define NSSM_HOOK_STATUS_FAILED 111 - -/* Version 1. */ -#define NSSM_HOOK_ENV_VERSION _T("NSSM_HOOK_VERSION") -#define NSSM_HOOK_ENV_IMAGE_PATH _T("NSSM_EXE") -#define NSSM_HOOK_ENV_NSSM_CONFIGURATION _T("NSSM_CONFIGURATION") -#define NSSM_HOOK_ENV_NSSM_VERSION _T("NSSM_VERSION") -#define NSSM_HOOK_ENV_BUILD_DATE _T("NSSM_BUILD_DATE") -#define NSSM_HOOK_ENV_PID _T("NSSM_PID") -#define NSSM_HOOK_ENV_DEADLINE _T("NSSM_DEADLINE") -#define NSSM_HOOK_ENV_SERVICE_NAME _T("NSSM_SERVICE_NAME") -#define NSSM_HOOK_ENV_SERVICE_DISPLAYNAME _T("NSSM_SERVICE_DISPLAYNAME") -#define NSSM_HOOK_ENV_COMMAND_LINE _T("NSSM_COMMAND_LINE") -#define NSSM_HOOK_ENV_APPLICATION_PID _T("NSSM_APPLICATION_PID") -#define NSSM_HOOK_ENV_EVENT _T("NSSM_EVENT") -#define NSSM_HOOK_ENV_ACTION _T("NSSM_ACTION") -#define NSSM_HOOK_ENV_TRIGGER _T("NSSM_TRIGGER") -#define NSSM_HOOK_ENV_LAST_CONTROL _T("NSSM_LAST_CONTROL") -#define NSSM_HOOK_ENV_START_REQUESTED_COUNT _T("NSSM_START_REQUESTED_COUNT") -#define NSSM_HOOK_ENV_START_COUNT _T("NSSM_START_COUNT") -#define NSSM_HOOK_ENV_THROTTLE_COUNT _T("NSSM_THROTTLE_COUNT") -#define NSSM_HOOK_ENV_EXIT_COUNT _T("NSSM_EXIT_COUNT") -#define NSSM_HOOK_ENV_EXITCODE _T("NSSM_EXITCODE") -#define NSSM_HOOK_ENV_RUNTIME _T("NSSM_RUNTIME") -#define NSSM_HOOK_ENV_APPLICATION_RUNTIME _T("NSSM_APPLICATION_RUNTIME") - -typedef struct { - TCHAR name[HOOK_NAME_LENGTH]; - HANDLE thread_handle; -} hook_thread_data_t; - -typedef struct { - hook_thread_data_t *data; - int num_threads; -} hook_thread_t; - -bool valid_hook_name(const TCHAR *, const TCHAR *, bool); -void await_hook_threads(hook_thread_t *, SERVICE_STATUS_HANDLE, SERVICE_STATUS *, unsigned long); -int nssm_hook(hook_thread_t *, nssm_service_t *, TCHAR *, TCHAR *, unsigned long *, unsigned long, bool); -int nssm_hook(hook_thread_t *, nssm_service_t *, TCHAR *, TCHAR *, unsigned long *, unsigned long); -int nssm_hook(hook_thread_t *, nssm_service_t *, TCHAR *, TCHAR *, unsigned long *); - -#endif +#ifndef HOOK_H +#define HOOK_H + +#define NSSM_HOOK_EVENT_START _T("Start") +#define NSSM_HOOK_EVENT_STOP _T("Stop") +#define NSSM_HOOK_EVENT_EXIT _T("Exit") +#define NSSM_HOOK_EVENT_POWER _T("Power") +#define NSSM_HOOK_EVENT_ROTATE _T("Rotate") + +#define NSSM_HOOK_ACTION_PRE _T("Pre") +#define NSSM_HOOK_ACTION_POST _T("Post") +#define NSSM_HOOK_ACTION_CHANGE _T("Change") +#define NSSM_HOOK_ACTION_RESUME _T("Resume") + +/* Hook name will be " (/)" */ +#define HOOK_NAME_LENGTH SERVICE_NAME_LENGTH * 2 + +#define NSSM_HOOK_VERSION 1 + +/* Hook ran successfully. */ +#define NSSM_HOOK_STATUS_SUCCESS 0 +/* No hook configured. */ +#define NSSM_HOOK_STATUS_NOTFOUND 1 +/* Hook requested abort. */ +#define NSSM_HOOK_STATUS_ABORT 99 +/* Internal error launching hook. */ +#define NSSM_HOOK_STATUS_ERROR 100 +/* Hook was not run. */ +#define NSSM_HOOK_STATUS_NOTRUN 101 +/* Hook timed out. */ +#define NSSM_HOOK_STATUS_TIMEOUT 102 +/* Hook returned non-zero. */ +#define NSSM_HOOK_STATUS_FAILED 111 + +/* Version 1. */ +#define NSSM_HOOK_ENV_VERSION _T("NSSM_HOOK_VERSION") +#define NSSM_HOOK_ENV_IMAGE_PATH _T("NSSM_EXE") +#define NSSM_HOOK_ENV_NSSM_CONFIGURATION _T("NSSM_CONFIGURATION") +#define NSSM_HOOK_ENV_NSSM_VERSION _T("NSSM_VERSION") +#define NSSM_HOOK_ENV_BUILD_DATE _T("NSSM_BUILD_DATE") +#define NSSM_HOOK_ENV_PID _T("NSSM_PID") +#define NSSM_HOOK_ENV_DEADLINE _T("NSSM_DEADLINE") +#define NSSM_HOOK_ENV_SERVICE_NAME _T("NSSM_SERVICE_NAME") +#define NSSM_HOOK_ENV_SERVICE_DISPLAYNAME _T("NSSM_SERVICE_DISPLAYNAME") +#define NSSM_HOOK_ENV_COMMAND_LINE _T("NSSM_COMMAND_LINE") +#define NSSM_HOOK_ENV_APPLICATION_PID _T("NSSM_APPLICATION_PID") +#define NSSM_HOOK_ENV_EVENT _T("NSSM_EVENT") +#define NSSM_HOOK_ENV_ACTION _T("NSSM_ACTION") +#define NSSM_HOOK_ENV_TRIGGER _T("NSSM_TRIGGER") +#define NSSM_HOOK_ENV_LAST_CONTROL _T("NSSM_LAST_CONTROL") +#define NSSM_HOOK_ENV_START_REQUESTED_COUNT _T("NSSM_START_REQUESTED_COUNT") +#define NSSM_HOOK_ENV_START_COUNT _T("NSSM_START_COUNT") +#define NSSM_HOOK_ENV_THROTTLE_COUNT _T("NSSM_THROTTLE_COUNT") +#define NSSM_HOOK_ENV_EXIT_COUNT _T("NSSM_EXIT_COUNT") +#define NSSM_HOOK_ENV_EXITCODE _T("NSSM_EXITCODE") +#define NSSM_HOOK_ENV_RUNTIME _T("NSSM_RUNTIME") +#define NSSM_HOOK_ENV_APPLICATION_RUNTIME _T("NSSM_APPLICATION_RUNTIME") + +typedef struct { + TCHAR name[HOOK_NAME_LENGTH]; + HANDLE thread_handle; +} hook_thread_data_t; + +typedef struct { + hook_thread_data_t *data; + int num_threads; +} hook_thread_t; + +bool valid_hook_name(const TCHAR *, const TCHAR *, bool); +void await_hook_threads(hook_thread_t *, SERVICE_STATUS_HANDLE, SERVICE_STATUS *, unsigned long); +int nssm_hook(hook_thread_t *, nssm_service_t *, TCHAR *, TCHAR *, unsigned long *, unsigned long, bool); +int nssm_hook(hook_thread_t *, nssm_service_t *, TCHAR *, TCHAR *, unsigned long *, unsigned long); +int nssm_hook(hook_thread_t *, nssm_service_t *, TCHAR *, TCHAR *, unsigned long *); + +#endif