HTREEITEM htiSystemLogs = NULL, htiAppLogs = NULL, htiUserLogs = NULL;
+LPWSTR lpComputerName = NULL; /* NULL: local user computer (default) */
+LPWSTR lpszzUserLogsToLoad = NULL; /* The list of user logs to load at startup (multi-string) */
+SIZE_T cbUserLogsSize = 0;
+
/* Global event records cache for the current active event log filter */
DWORD g_TotalRecords = 0;
static DWORD WINAPI
StartStopEnumEventsThread(IN LPVOID lpParameter);
+VOID OpenUserEventLogFile(IN LPCWSTR lpszFileName);
+
VOID BuildLogListAndFilterList(IN LPCWSTR lpComputerName);
VOID FreeLogList(VOID);
VOID FreeLogFilterList(VOID);
LocalFree(lpMessageBuffer);
}
+VOID
+DisplayUsage(VOID)
+{
+ LPWSTR lpBuffer;
+ LPCWSTR lpUsage;
+ INT iUsageLen = LoadStringW(hInst, IDS_USAGE, (LPWSTR)&lpUsage, 0);
+
+ if (iUsageLen == 0)
+ return;
+
+ lpBuffer = HeapAlloc(GetProcessHeap(), 0, (iUsageLen + 1) * sizeof(WCHAR));
+ if (!lpBuffer)
+ return;
+
+ StringCchCopyNW(lpBuffer, iUsageLen + 1, lpUsage, iUsageLen);
+ MessageBoxW(NULL, lpBuffer, szTitle, MB_OK | MB_ICONINFORMATION);
+
+ HeapFree(GetProcessHeap(), 0, lpBuffer);
+}
+
+BOOL
+ProcessCmdLine(IN LPWSTR lpCmdLine)
+{
+ BOOL Success = FALSE;
+ INT i, argc;
+ LPWSTR* argv;
+
+ /* Skip any leading whitespace */
+ if (lpCmdLine)
+ {
+ while (iswspace(*lpCmdLine))
+ ++lpCmdLine;
+ }
+
+ /* No command line means no processing needed */
+ if (!lpCmdLine || !*lpCmdLine)
+ return TRUE;
+
+ /* Build the arguments vector */
+ argv = CommandLineToArgvW(lpCmdLine, &argc);
+ if (!argv)
+ return FALSE;
+
+ /* Parse the command line for options (skip the program name) */
+ for (i = 1; i < argc; ++i)
+ {
+ /* Check for new options */
+ if (argv[i][0] == L'-' || argv[i][0] == L'/')
+ {
+ if (argv[i][1] == L'?' && argv[i][2] == 0)
+ {
+ /* Display help */
+ DisplayUsage();
+ goto Quit;
+ }
+ else
+ if (argv[i][2] == L':')
+ {
+ switch (towupper(argv[i][1]))
+ {
+ case L'L':
+ {
+ LPWSTR lpNewBuffer;
+ LPWSTR lpFileName = argv[i] + 3;
+ SIZE_T cbFileName;
+
+ /* Check for a quoted file name */
+ if (*lpFileName == L'\"')
+ {
+ /* Skip this quote, and the last one too if any */
+ ++lpFileName;
+ cbFileName = wcslen(lpFileName);
+ if (cbFileName > 0 && lpFileName[cbFileName - 1] == L'\"')
+ lpFileName[cbFileName - 1] = UNICODE_NULL;
+ }
+
+ /* Skip this one if we do not actually have a file name */
+ if (!*lpFileName)
+ continue;
+
+ cbFileName = (wcslen(lpFileName) + 1) * sizeof(WCHAR);
+
+ /* Reallocate the list of user logs to load */
+ if (lpszzUserLogsToLoad)
+ {
+ lpNewBuffer = HeapReAlloc(GetProcessHeap(),
+ HEAP_ZERO_MEMORY,
+ lpszzUserLogsToLoad,
+ /* Count the multi-string NULL-terminator */
+ cbUserLogsSize + cbFileName + sizeof(WCHAR));
+ }
+ else
+ {
+ cbUserLogsSize = 0;
+ lpNewBuffer = HeapAlloc(GetProcessHeap(),
+ HEAP_ZERO_MEMORY,
+ /* Count the multi-string NULL-terminator */
+ cbUserLogsSize + cbFileName + sizeof(WCHAR));
+ }
+
+ if (!lpNewBuffer)
+ {
+ ShowWin32Error(ERROR_NOT_ENOUGH_MEMORY);
+ goto Quit;
+ }
+
+ lpszzUserLogsToLoad = lpNewBuffer;
+ lpNewBuffer = (LPWSTR)((ULONG_PTR)lpNewBuffer + cbUserLogsSize);
+ cbUserLogsSize += cbFileName;
+
+ /* Save the file name */
+ StringCbCopyW(lpNewBuffer, cbFileName, lpFileName);
+
+ continue;
+ }
+
+ default:
+ break;
+ }
+ }
+
+ /* Unknown argument: display help and bail out */
+ DisplayUsage();
+ goto Quit;
+ }
+ else
+ {
+ /*
+ * An argument that does not start with the switch character.
+ * If this is the first argument then this corresponds to the
+ * optional computer name. Otherwise this is a wrong argument.
+ */
+ if (i == 1)
+ {
+ /* Store the computer name */
+ SIZE_T cbLength;
+
+ cbLength = (wcslen(argv[i]) + 1) * sizeof(WCHAR);
+ lpComputerName = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cbLength);
+ if (lpComputerName)
+ {
+ StringCbCopyW(lpComputerName, cbLength, argv[i]);
+ }
+ /* else, fall back to local computer */
+ }
+ else
+ {
+ /* Invalid syntax: display help and bail out */
+ DisplayUsage();
+ goto Quit;
+ }
+ }
+ }
+
+ Success = TRUE;
+
+Quit:
+ /* In case of failure, free anything we have allocated */
+ if (!Success)
+ {
+ if (lpszzUserLogsToLoad)
+ {
+ cbUserLogsSize = 0;
+ HeapFree(GetProcessHeap(), 0, lpszzUserLogsToLoad);
+ lpszzUserLogsToLoad = NULL;
+ }
+ if (lpComputerName)
+ {
+ HeapFree(GetProcessHeap(), 0, lpComputerName);
+ lpComputerName = NULL;
+ }
+ }
+
+ /* Free the arguments vector and exit */
+ LocalFree(argv);
+ return Success;
+}
+
int APIENTRY
wWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LoadStringW(hInstance, IDS_LOADING_WAIT, szLoadingWait, ARRAYSIZE(szLoadingWait));
LoadStringW(hInstance, IDS_NO_ITEMS, szEmptyList, ARRAYSIZE(szEmptyList));
+ /*
+ * Process the command-line arguments. Note that we need the full
+ * command-line, with the program file included, and not just what
+ * WinMain() provides in its lpCmdLine parameter.
+ */
+ if (!ProcessCmdLine(GetCommandLineW()))
+ goto Quit;
+
if (!MyRegisterClass(hInstance))
goto Quit;
/* Retrieve the available event logs on this computer and create filters for them */
InitializeListHead(&EventLogList);
InitializeListHead(&EventLogFilterList);
- // TODO: Implement connection to remote computer...
- // At the moment we only support the user local computer.
- BuildLogListAndFilterList(NULL);
+ BuildLogListAndFilterList(lpComputerName);
- // TODO: If the user wants to open an external event log with the Event Log Viewer
- // (via the command line), it's here that the log should be opened.
+ /* Open the user-specified logs if any are present on the command-line */
+ if (lpszzUserLogsToLoad)
+ {
+ LPWSTR lpUserLog;
+ for (lpUserLog = lpszzUserLogsToLoad; *lpUserLog; lpUserLog += wcslen(lpUserLog) + 1)
+ {
+ OpenUserEventLogFile(lpUserLog);
+ }
+
+ /* Now cleanup the list of user logs */
+ cbUserLogsSize = 0;
+ HeapFree(GetProcessHeap(), 0, lpszzUserLogsToLoad);
+ lpszzUserLogsToLoad = NULL;
+ }
/* Main message loop */
while (GetMessageW(&msg, NULL, 0, 0))
CloseHandle(hStartStopEnumEvent);
Quit:
+ /* Final cleanup */
+ if (lpszzUserLogsToLoad)
+ {
+ cbUserLogsSize = 0;
+ HeapFree(GetProcessHeap(), 0, lpszzUserLogsToLoad);
+ lpszzUserLogsToLoad = NULL;
+ }
+ if (lpComputerName)
+ {
+ HeapFree(GetProcessHeap(), 0, lpComputerName);
+ lpComputerName = NULL;
+ }
FreeLibrary(hRichEdit);
return (int)msg.wParam;
EnumEventsThread(IN LPVOID lpParameter)
{
PEVENTLOGFILTER EventLogFilter = (PEVENTLOGFILTER)lpParameter;
- LPWSTR lpMachineName = NULL; // EventLogFilter->ComputerName;
PEVENTLOG EventLog;
ULONG LogIndex;
EventLogFilter_AddRef(EventLogFilter);
ActiveFilter = EventLogFilter;
+
+ /** HACK!! **/
+ EventLog = EventLogFilter->EventLogs[0];
+
+ // FIXME: Use something else instead of EventLog->LogName !!
+
+ /*
+ * Use a different formatting, whether the event log filter holds
+ * only one log, or many logs (the latter case is WIP TODO!)
+ */
+ if (EventLogFilter->NumOfEventLogs <= 1)
+ {
+ StringCchPrintfExW(szWindowTitle,
+ ARRAYSIZE(szWindowTitle),
+ &lpTitleTemplateEnd,
+ &cchRemaining,
+ 0,
+ szTitleTemplate, szTitle, EventLog->LogName); /* i = number of characters written */
+ dwMaxLength = (DWORD)cchRemaining;
+ if (!EventLog->ComputerName)
+ GetComputerNameW(lpTitleTemplateEnd, &dwMaxLength);
+ else
+ StringCchCopyW(lpTitleTemplateEnd, dwMaxLength, EventLog->ComputerName);
+
+ StringCbPrintfW(szStatusText,
+ sizeof(szStatusText),
+ szStatusBarTemplate,
+ EventLog->LogName,
+ 0,
+ 0);
+ }
+ else
+ {
+ // TODO: Use a different title & implement filtering for multi-log filters !!
+ // (EventLogFilter->NumOfEventLogs > 1)
+ MessageBoxW(hwndMainWindow,
+ L"Many-logs filtering is not implemented yet!!",
+ L"Event Log",
+ MB_OK | MB_ICONINFORMATION);
+ }
+
+ /* Set the window title */
+ SetWindowTextW(hwndMainWindow, szWindowTitle);
+
+ /* Update the status bar */
+ StatusBar_SetText(hwndStatus, 0, szStatusText);
+
+
/* Disable list view redraw */
SendMessageW(hwndListView, WM_SETREDRAW, FALSE, 0);
*/
if (EventLogFilter->NumOfEventLogs <= 1)
{
- StringCchPrintfExW(szWindowTitle,
- ARRAYSIZE(szWindowTitle),
- &lpTitleTemplateEnd,
- &cchRemaining,
- 0,
- szTitleTemplate, szTitle, EventLog->LogName); /* i = number of characters written */
- dwMaxLength = (DWORD)cchRemaining;
- if (!lpMachineName)
- GetComputerNameW(lpTitleTemplateEnd, &dwMaxLength);
- else
- StringCchCopyW(lpTitleTemplateEnd, dwMaxLength, lpMachineName);
-
StringCbPrintfW(szStatusText,
sizeof(szStatusText),
szStatusBarTemplate,
{
// TODO: Use a different title & implement filtering for multi-log filters !!
// (EventLogFilter->NumOfEventLogs > 1)
- MessageBoxW(hwndMainWindow,
- L"Many-logs filtering is not implemented yet!!",
- L"Event Log",
- MB_OK | MB_ICONINFORMATION);
}
/* Update the status bar */
StatusBar_SetText(hwndStatus, 0, szStatusText);
- /* Set the window title */
- SetWindowTextW(hwndMainWindow, szWindowTitle);
-
/* Resume list view redraw */
SendMessageW(hwndListView, WM_SETREDRAW, TRUE, 0);
HTREEITEM hRootNode = NULL, hItem = NULL, hItemDefault = NULL;
/* Open the EventLog key */
+ // TODO: Implement connection to remote computer...
+ // At the moment we only support the user local computer.
// FIXME: Use local or remote computer
Result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, EVENTLOG_BASE_KEY, 0, KEY_READ, &hEventLogKey);
if (Result != ERROR_SUCCESS)
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Error"
IDS_SAVE_FILTER "Protokol událostí (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Chyba"
IDS_SAVE_FILTER "Ereignisprotokoll (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Fehler"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Αφάλμα"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Error"
IDS_EVENTLOG_SYSTEM "System Logs"
IDS_EVENTLOG_APP "Application Logs"
IDS_EVENTLOG_USER "User Logs"
- IDS_EVENTSTRINGIDNOTFOUND "No se pudo recuperar la descripción para el evento con ID (%lu) y origen (%s). El equipo local puede no tener la información necesaria en el registro o las DLLs necesarias para mostrar los mensajes de un equipo remoto.\n\nThe following information is part of the event:\n\n"
+ IDS_EVENTSTRINGIDNOTFOUND "No se pudo recuperar la descripción para el evento con ID ( %lu ) y origen ( %s ). El equipo local puede no tener la información necesaria en el registro o las DLLs necesarias para mostrar los mensajes de un equipo remoto.\n\nThe following information is part of the event:\n\n"
IDS_CLEAREVENTS_MSG "¿Desea guardar este registro de eventos antes de borrarlo?"
IDS_SAVE_FILTER "Registro de eventos (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Error"
IDS_SAVE_FILTER "Journal d'événements (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "Visionneuse d'événements ReactOS\n\
+\n\
+EventVwr [nom ordinateur] [/l:<fichier journal>] [/?]\n\
+\n\
+""nom ordinateur"" : Spécifie l'ordinateur distant auquel se connecter\n\
+\tpour récupérer les événements à afficher. Si aucun nom n'est spécifié,\n\
+\tl'ordinateur local est utilisé.\n\
+\n\
+/l:<fichier journal> : Spécifie quel fichier journal ouvrir.\n\
+\tSeuls les fichiers au format .evt (NT ≤ 5.2) sont supportés.\n\
+\n\
+/? : Affiche ce message d'aide.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Erreur"
STRINGTABLE
BEGIN
- IDS_COPY "Event Type: %s\r\n\
-Event Source: %s\r\n\
-Event Category: %s\r\n\
-Event ID: %s\r\n\
-Date: %s\r\n\
-Time: %s\r\n\
-User: %s\r\n\
-Computer: %s\r\n\
-Description:\r\n%s"
+ IDS_COPY "Type d'événement : %s\r\n\
+Source de l'événement : %s\r\n\
+Catégorie de l'événement : %s\r\n\
+ID de l'événement : %s\r\n\
+Date : %s\r\n\
+Heure : %s\r\n\
+Utilisateur : %s\r\n\
+Ordinateur : %s\r\n\
+Description :\r\n%s"
END
STRINGTABLE
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "שגיאה"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Errore"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "エラー"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "에러"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Feil"
IDS_SAVE_FILTER "Dziennik zdarzeń (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Błąd"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Erro"
IDS_SAVE_FILTER "Jurnal de evenimente (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Eroare"
Oră: %s\r\n\
Utilizator: %s\r\n\
Calculator: %s\r\n\
-Descriere :\r\n%s"
+Descriere:\r\n%s"
END
STRINGTABLE
IDS_SAVE_FILTER "Журнал событий (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Ошибка"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Chyba"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Error"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Fel"
IDS_SAVE_FILTER "Olay Kaydı (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Yanlışlık"
IDS_EVENTLOG_SYSTEM "System Logs"
IDS_EVENTLOG_APP "Application Logs"
IDS_EVENTLOG_USER "User Logs"
- IDS_EVENTSTRINGIDNOTFOUND "Опис для Ідентифікатора події( %lu ) за джерелом ( %s ) не знайдено. Локальний комп'ютер може не мати необхідної інформації в реєстрі чи DLL файлів повідомлень для відображення повідомлень, що надходять від віддаленого комп'ютера.\n\nThe following information is part of the event:\n\n"
+ IDS_EVENTSTRINGIDNOTFOUND "Опис для Ідентифікатора події ( %lu ) за джерелом ( %s ) не знайдено. Локальний комп'ютер може не мати необхідної інформації в реєстрі чи DLL файлів повідомлень для відображення повідомлень, що надходять від віддаленого комп'ютера.\n\nThe following information is part of the event:\n\n"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "Помилка"
IDS_SAVE_FILTER "事件日志 (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "错误"
STRINGTABLE
BEGIN
- IDS_COPY "事件类型: %s\r\n\
-事件源: %s\r\n\
-事件类别: %s\r\n\
-事件 ID: %s\r\n\
-日期: %s\r\n\
-时间: %s\r\n\
-用户: %s\r\n\
-电脑: %s\r\n\
-描述:\n%s"
+ IDS_COPY "事件类型: %s\r\n\
+事件源: %s\r\n\
+事件类别: %s\r\n\
+事件 ID: %s\r\n\
+日期: %s\r\n\
+时间: %s\r\n\
+用户: %s\r\n\
+电脑: %s\r\n\
+描述:\r\n%s"
END
STRINGTABLE
IDS_SAVE_FILTER "事件日誌 (*.evt)\0*.evt\0"
END
+STRINGTABLE
+BEGIN
+/* Please note that explicit TAB characters '\t' are used to fix the alignment of the message in the MessageBox */
+ IDS_USAGE "ReactOS Event Viewer\n\
+\n\
+EventVwr [computer name] [/l:<event log file>] [/?]\n\
+\n\
+""computer name"" : Specifies the remote computer where to connect\n\
+\tto retrieve the events to display. If no name is specified, the\n\
+\tlocal computer is used.\n\
+\n\
+/l:<event log file> : Specifies which event log file to open.\n\
+\tOnly files in the .evt format (NT ≤ 5.2) are supported.\n\
+\n\
+/? : Displays this help message.\n\
+"
+END
+
STRINGTABLE
BEGIN
IDS_EVENTLOG_ERROR_TYPE "錯誤"
STRINGTABLE
BEGIN
- IDS_COPY "事件種類: %s\r\n\
-事件源: %s\r\n\
-事件種類: %s\r\n\
-事件 ID: %s\r\n\
-日期: %s\r\n\
-時間: %s\r\n\
-使用者: %s\r\n\
-電腦: %s\r\n\
-描述:\n%s"
+ IDS_COPY "事件種類: %s\r\n\
+事件源: %s\r\n\
+事件種類: %s\r\n\
+事件 ID: %s\r\n\
+日期: %s\r\n\
+時間: %s\r\n\
+使用者: %s\r\n\
+電腦: %s\r\n\
+描述:\r\n%s"
END
STRINGTABLE
#define IDS_CLEAREVENTS_MSG 110
#define IDS_SAVE_FILTER 111
+#define IDS_USAGE 120
+
#define IDS_EVENTLOG_ERROR_TYPE 200
#define IDS_EVENTLOG_WARNING_TYPE 201
#define IDS_EVENTLOG_INFORMATION_TYPE 202