\r
/* Convert error code to error string - must call LocalFree() on return value */\r
char *error_string(unsigned long error) {\r
- char *message;\r
- if (! FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, 0, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (char *) &message, 0, 0)) return 0;\r
+ static char message[65535];\r
+ if (! FormatMessage(FORMAT_MESSAGE_FROM_HMODULE, 0, NSSM_MESSAGE_DEFAULT, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), message, sizeof(message), 0)) return 0;\r
return message;\r
}\r
\r
/* Log a message to the Event Log */\r
-void eventprintf(unsigned short type, char *format, ...) {\r
+void eventprintf(unsigned short type, unsigned long id, char *format, ...) {\r
char message[4096];\r
char *strings[2];\r
int n, size;\r
if (! handle) return;\r
\r
/* Log it */\r
- if (! ReportEvent(handle, type, 0, 0, 0, 1, 0, (const char **) strings, 0)) {\r
+ if (! ReportEvent(handle, type, 0, id, 0, 1, 0, (const char **) strings, 0)) {\r
printf("ReportEvent(): %s\n", error_string(GetLastError()));\r
}\r
\r