- Accept the parameters case-insensitive

- Replace the "/h" option by a "/?" option as described in the Usage text
- Use a consistent indentation
- Change the Usage text a bit

svn path=/trunk/; revision=28936
This commit is contained in:
Colin Finck 2007-09-08 09:04:51 +00:00
parent a1a8df5ad2
commit 1540ce885b

View file

@ -32,58 +32,58 @@
#include <tchar.h> #include <tchar.h>
#include <stdarg.h> #include <stdarg.h>
TCHAR* m_MachineName = NULL; TCHAR* m_MachineName = NULL;
TCHAR* m_Text = "No User Event Text"; TCHAR* m_Text = "No User Event Text";
TCHAR* m_Source = "User Event"; TCHAR* m_Source = "User Event";
WORD m_Severity = EVENTLOG_INFORMATION_TYPE; WORD m_Severity = EVENTLOG_INFORMATION_TYPE;
WORD m_Category = 0; WORD m_Category = 0;
DWORD m_EventID = 1; DWORD m_EventID = 1;
void void
Usage(VOID) Usage(VOID)
{ {
fputs("logevent.exe [-m \\MachineName] [options] \"Event Text\"", stderr); fputs("Usage: logevent.exe [-m \\MachineName] [options] \"Event Text\"", stderr);
fputs("\n", stderr); fputs("\n\n", stderr);
fputs(" Options:\n", stderr); fputs("Options:\n", stderr);
fputs(" -s Severity one of :\n", stderr); fputs(" -s Severity one of:\n", stderr);
fputs(" (S)uccess\n", stderr); fputs(" \t(S)uccess\n", stderr);
fputs(" (I)nformation\n", stderr); fputs(" \t(I)nformation\n", stderr);
fputs(" (W)arning\n", stderr); fputs(" \t(W)arning\n", stderr);
fputs(" (E)rror\n", stderr); fputs(" \t(E)rror\n", stderr);
fputs(" (F)ailure\n", stderr); fputs(" \t(F)ailure\n", stderr);
fputs(" -r Source\n", stderr); fputs(" -r Source\n", stderr);
fputs(" -c Category number\n", stderr); fputs(" -c Category number\n", stderr);
fputs(" -e Event ID\n", stderr); fputs(" -e Event ID\n", stderr);
fputs(" /? Help\n", stderr); fputs(" /? Help\n", stderr);
} }
void void
WriteEvent (VOID) WriteEvent (VOID)
{ {
HANDLE hAppLog; HANDLE hAppLog;
BOOL bSuccess; BOOL bSuccess;
LPCTSTR arrLogEntry[] = { m_Text }; //writing just one entry LPCTSTR arrLogEntry[] = { m_Text }; //writing just one entry
/* Get a handle to the Application event log */ /* Get a handle to the Application event log */
hAppLog = RegisterEventSource( hAppLog = RegisterEventSource(
(LPCSTR)m_MachineName, /* machine */ (LPCSTR)m_MachineName, /* machine */
(LPCSTR)m_Source); /* source name */ (LPCSTR)m_Source); /* source name */
/* Now report the event, which will add this event to the event log */ /* Now report the event, which will add this event to the event log */
bSuccess = ReportEvent( bSuccess = ReportEvent(
hAppLog, /* event-log handle */ hAppLog, /* event-log handle */
m_Severity, /* event type */ m_Severity, /* event type */
m_Category, /* category */ m_Category, /* category */
m_EventID, /* event ID */ m_EventID, /* event ID */
NULL, /* no user SID */ NULL, /* no user SID */
1, /* number of substitution strings */ 1, /* number of substitution strings */
0, /* no binary data */ 0, /* no binary data */
arrLogEntry, /* string array */ arrLogEntry, /* string array */
NULL); /* address of data */ NULL); /* address of data */
DeregisterEventSource(hAppLog); DeregisterEventSource(hAppLog);
return; return;
} }
/* Parse command line parameters */ /* Parse command line parameters */
@ -92,7 +92,7 @@ static BOOL ParseCmdline(int argc, TCHAR **argv)
INT i; INT i;
BOOL ShowUsage; BOOL ShowUsage;
BOOL FoundEventText; BOOL FoundEventText;
BOOL InvalidOption; BOOL InvalidOption;
if (argc < 2) { if (argc < 2) {
ShowUsage = TRUE; ShowUsage = TRUE;
@ -106,44 +106,68 @@ static BOOL ParseCmdline(int argc, TCHAR **argv)
for (i = 1; i < argc; i++) { for (i = 1; i < argc; i++) {
if (argv[i][0] == '-' || argv[i][0] == '/') { if (argv[i][0] == '-' || argv[i][0] == '/') {
switch (argv[i][1]) { switch (argv[i][1]) {
case 's': case 's':
switch (argv[i + 1][0]) case 'S':
{ switch (argv[i + 1][0])
case 's': {
m_Severity = EVENTLOG_SUCCESS; case 's':
i++; case 'S':
break; m_Severity = EVENTLOG_SUCCESS;
case 'i': i++;
m_Severity = EVENTLOG_INFORMATION_TYPE; break;
i++; case 'i':
break; case 'I':
case 'w': m_Severity = EVENTLOG_INFORMATION_TYPE;
m_Severity = EVENTLOG_WARNING_TYPE; i++;
i++; break;
break; case 'w':
case 'e': case 'W':
m_Severity = EVENTLOG_ERROR_TYPE; m_Severity = EVENTLOG_WARNING_TYPE;
i++; i++;
break; break;
case 'f': case 'e':
m_Severity = EVENTLOG_ERROR_TYPE; case 'E':
i++; m_Severity = EVENTLOG_ERROR_TYPE;
break; i++;
default: break;
printf("Bad option %s.\n", argv[i]); case 'f':
Usage(); case 'F':
return FALSE; m_Severity = EVENTLOG_ERROR_TYPE;
} i++;
break; break;
case 'm': m_MachineName = argv[i + 1]; i++; break; default:
case 'r': m_Source = argv[i + 1]; i++; break; printf("Bad option %s.\n", argv[i]);
case 'c': m_Category = atoi(argv[i + 1]); i++; break; Usage();
case 'e': m_EventID = atoi(argv[i + 1]); i++; break; return FALSE;
case 'h': ShowUsage = TRUE; break; }
default: break;
printf("Bad option %s.\n", argv[i]); case 'm':
Usage(); case 'M':
return FALSE; m_MachineName = argv[i + 1];
i++;
break;
case 'r':
case 'R':
m_Source = argv[i + 1];
i++;
break;
case 'c':
case 'C':
m_Category = atoi(argv[i + 1]);
i++;
break;
case 'e':
case 'E':
m_EventID = atoi(argv[i + 1]);
i++;
break;
case '?':
ShowUsage = TRUE;
break;
default:
printf("Bad option %s.\n", argv[i]);
Usage();
return FALSE;
} }
if (InvalidOption) { if (InvalidOption) {
printf("Bad option format %s.\n", argv[i]); printf("Bad option format %s.\n", argv[i]);
@ -154,7 +178,7 @@ static BOOL ParseCmdline(int argc, TCHAR **argv)
printf("Bad parameter %s.\n", argv[i]); printf("Bad parameter %s.\n", argv[i]);
return FALSE; return FALSE;
} else { } else {
m_Text = argv[i]; m_Text = argv[i];
FoundEventText = TRUE; FoundEventText = TRUE;
} }
} }
@ -175,8 +199,8 @@ static BOOL ParseCmdline(int argc, TCHAR **argv)
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
if (ParseCmdline(argc, argv)) if (ParseCmdline(argc, argv))
WriteEvent (); WriteEvent ();
return 0; return 0;
} }