103 SERVICE_FAILURE_ACTIONSA* fail_acts = get_failure_actions();
105 char sz_path[MAX_PATH];
106 ::GetModuleFileNameA(0, sz_path,
sizeof(sz_path));
107 ::GetShortPathNameA(sz_path, sz_path,
sizeof(sz_path));
111 m_manager = ::OpenSCManager(NULL, NULL, GENERIC_ALL);
113 int err = GetLastError();
115 "Failed to OpenSCManager(), last err=" 116 << log_space::get_win32_err_descr(err));
121 SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_DEMAND_START,
122 SERVICE_ERROR_IGNORE, sz_path, 0, 0, 0, 0, 0);
124 int err = GetLastError();
126 "Failed to CreateService(), last err=" 127 << log_space::get_win32_err_descr(err));
132 SERVICE_DESCRIPTIONA sd = { (
char*) psz_descr };
133 if (!::ChangeServiceConfig2A(m_service, SERVICE_CONFIG_DESCRIPTION,
135 int err = GetLastError();
137 "Failed to ChangeServiceConfig2(SERVICE_CONFIG_DESCRIPTION), last err=" 138 << log_space::get_win32_err_descr(err));
144 if (!::ChangeServiceConfig2A(m_service, SERVICE_CONFIG_FAILURE_ACTIONS,
146 int err = GetLastError();
148 "Failed to ChangeServiceConfig2(SERVICE_CONFIG_FAILURE_ACTIONS), last err=" 149 << log_space::get_win32_err_descr(err));
153 LOG_PRINT(
"Installed succesfully.", LOG_LEVEL_0);
156 LOG_PRINT(
"Failed to install.", LOG_LEVEL_0);
virtual const char * get_description()=0
#define CHECK_AND_ASSERT(expr, fail_ret_val)
virtual const char * get_caption()=0
virtual const char * get_name()=0