From 9a5faf7cc98c54135218a47129b3e476c6e96f70 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sat, 9 Jul 2016 12:32:21 +0000 Subject: [PATCH] [EVENTVWR] - Display 3 different "types" of logs in the tree: "system logs": Application, Security, System, that are the minimal set of standard logs present on NT systems; "application logs": all the other logs, that are available to the event log service (both "system" and "application" logs are registered in the registry, under the "EventLog" service key). Finally comes the "user logs" that consists in all the log files that are manually opened by the user inthe event log viewer. - Use 'PEVENTLOGRECORD' instead of 'EVENTLOGRECORD *'. - Don't hardcode the buffer length values in the size parameters used in the GetEventUserName function. - Merge both GetDisplayNameFile and GetDisplayNameID helpers into a single GetDisplayNameFileAndID function, since the former two were always called in tandem. - Forbid editing the labels of the tree root nodes "system"/"application"/"user" logs. - Splitter bar: set the cursor only when it is on the bar, not when it is above the status bar... - Resize the status bar only in WM_SIZE events. - Remove few dead code. svn path=/trunk/; revision=71867 --- .../applications/mscutils/eventvwr/eventvwr.c | 155 ++++++++++-------- .../mscutils/eventvwr/lang/bg-BG.rc | 1 + .../mscutils/eventvwr/lang/cs-CZ.rc | 1 + .../mscutils/eventvwr/lang/de-DE.rc | 1 + .../mscutils/eventvwr/lang/el-GR.rc | 1 + .../mscutils/eventvwr/lang/en-US.rc | 1 + .../mscutils/eventvwr/lang/es-ES.rc | 1 + .../mscutils/eventvwr/lang/fr-FR.rc | 1 + .../mscutils/eventvwr/lang/he-IL.rc | 1 + .../mscutils/eventvwr/lang/it-IT.rc | 1 + .../mscutils/eventvwr/lang/ja-JP.rc | 1 + .../mscutils/eventvwr/lang/ko-KR.rc | 1 + .../mscutils/eventvwr/lang/no-NO.rc | 1 + .../mscutils/eventvwr/lang/pl-PL.rc | 1 + .../mscutils/eventvwr/lang/pt-BR.rc | 1 + .../mscutils/eventvwr/lang/ro-RO.rc | 1 + .../mscutils/eventvwr/lang/ru-RU.rc | 1 + .../mscutils/eventvwr/lang/sk-SK.rc | 1 + .../mscutils/eventvwr/lang/sq-AL.rc | 1 + .../mscutils/eventvwr/lang/sv-SE.rc | 1 + .../mscutils/eventvwr/lang/tr-TR.rc | 1 + .../mscutils/eventvwr/lang/uk-UA.rc | 1 + .../mscutils/eventvwr/lang/zh-CN.rc | 1 + .../mscutils/eventvwr/lang/zh-TW.rc | 1 + .../applications/mscutils/eventvwr/resource.h | 3 +- 25 files changed, 108 insertions(+), 73 deletions(-) diff --git a/reactos/base/applications/mscutils/eventvwr/eventvwr.c b/reactos/base/applications/mscutils/eventvwr/eventvwr.c index decd9912920..f8ed39877cf 100644 --- a/reactos/base/applications/mscutils/eventvwr/eventvwr.c +++ b/reactos/base/applications/mscutils/eventvwr/eventvwr.c @@ -56,8 +56,16 @@ typedef struct _DETAILDATA HFONT hMonospaceFont; } DETAILDATA, *PDETAILDATA; -static const WCHAR szWindowClass[] = L"EVENTVWR"; /* the main window class name */ -static const WCHAR EVENTLOG_BASE_KEY[] = L"SYSTEM\\CurrentControlSet\\Services\\EventLog\\"; +static const LPCWSTR szWindowClass = L"EVENTVWR"; /* The main window class name */ +static const WCHAR EVENTLOG_BASE_KEY[] = L"SYSTEM\\CurrentControlSet\\Services\\EventLog\\"; + +/* The 3 system logs that should always exist in the user's system */ +static const LPCWSTR SystemLogs[] = +{ + L"Application", + L"Security", + L"System" +}; /* MessageFile message buffer size */ #define EVENT_MESSAGE_EVENTTEXT_BUFFER 1024*10 @@ -73,7 +81,7 @@ static const WCHAR EVENTLOG_BASE_KEY[] = L"SYSTEM\\CurrentControlSet\\Services\ #define SPLIT_WIDTH 4 /* Globals */ -HINSTANCE hInst; /* current instance */ +HINSTANCE hInst; /* Current instance */ WCHAR szTitle[MAX_LOADSTRING]; /* The title bar text */ WCHAR szTitleTemplate[MAX_LOADSTRING]; /* The logged-on title bar text */ WCHAR szSaveFilter[MAX_LOADSTRING]; /* Filter Mask for the save Dialog */ @@ -85,7 +93,7 @@ HWND hwndStatus; /* Status bar */ HMENU hMainMenu; /* The application's main menu */ WCHAR szStatusBarTemplate[MAX_LOADSTRING]; /* The status bar text */ -HTREEITEM htiSystemLogs = NULL, htiUserLogs = NULL; +HTREEITEM htiSystemLogs = NULL, htiAppLogs = NULL, htiUserLogs = NULL; BOOL NewestEventsFirst = TRUE; PEVENTLOGRECORD *g_RecordPtrs = NULL; @@ -98,7 +106,7 @@ LPWSTR lpSourceLogName = NULL; DWORD dwNumLogs = 0; LPWSTR* LogNames = NULL; -/* Forward declarations of functions included in this code module: */ +/* Forward declarations of functions included in this code module */ ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); @@ -276,7 +284,7 @@ GetEventMessageFileDLL(IN LPCWSTR lpLogName, BOOL GetEventCategory(IN LPCWSTR KeyName, IN LPCWSTR SourceName, - IN EVENTLOGRECORD *pevlr, + IN PEVENTLOGRECORD pevlr, OUT PWCHAR CategoryName) // TODO: Add IN DWORD BufLen { BOOL Success = FALSE; @@ -334,7 +342,7 @@ Quit: BOOL GetEventMessage(IN LPCWSTR KeyName, IN LPCWSTR SourceName, - IN EVENTLOGRECORD *pevlr, + IN PEVENTLOGRECORD pevlr, OUT PWCHAR EventText) // TODO: Add IN DWORD BufLen { BOOL Success = FALSE; @@ -390,7 +398,7 @@ GetEventMessage(IN LPCWSTR KeyName, LOAD_LIBRARY_AS_IMAGE_RESOURCE | LOAD_LIBRARY_AS_DATAFILE); if (hLibrary == NULL) { - /* The DLL could not be loaded try the next one (if any) */ + /* The DLL could not be loaded, try the next one (if any) */ szDll = wcstok(NULL, EVENT_DLL_SEPARATOR); continue; } @@ -482,15 +490,15 @@ GetEventType(IN WORD dwEventType, } BOOL -GetEventUserName(EVENTLOGRECORD *pelr, +GetEventUserName(PEVENTLOGRECORD pelr, OUT PWCHAR pszUser) { PSID lpSid; WCHAR szName[1024]; WCHAR szDomain[1024]; SID_NAME_USE peUse; - DWORD cbName = 1024; - DWORD cbDomain = 1024; + DWORD cchName = ARRAYSIZE(szName); + DWORD cchDomain = ARRAYSIZE(szDomain); /* Point to the SID */ lpSid = (PSID)((LPBYTE)pelr + pelr->UserSidOffset); @@ -501,9 +509,9 @@ GetEventUserName(EVENTLOGRECORD *pelr, if (LookupAccountSidW(NULL, lpSid, szName, - &cbName, + &cchName, szDomain, - &cbDomain, + &cchDomain, &peUse)) { StringCchCopyW(pszUser, MAX_PATH, szName); @@ -745,7 +753,7 @@ QueryEventMessages(LPWSTR lpMachineName, ListView_SetItemText(hwndListView, lviEventItem.iItem, 7, lpszComputerName); dwRead -= pevlr->Length; - pevlr = (EVENTLOGRECORD *)((LPBYTE) pevlr + pevlr->Length); + pevlr = (PEVENTLOGRECORD)((LPBYTE) pevlr + pevlr->Length); } dwRecordsToRead--; @@ -911,14 +919,18 @@ MyRegisterClass(HINSTANCE hInstance) BOOL -GetDisplayNameFile(IN LPCWSTR lpLogName, - OUT PWCHAR lpModuleName) +GetDisplayNameFileAndID(IN LPCWSTR lpLogName, + OUT PWCHAR lpModuleName, + OUT PDWORD pdwMessageID) { HKEY hKey; WCHAR *KeyPath; - WCHAR szModuleName[MAX_PATH]; DWORD cbData; SIZE_T cbKeyPath; + DWORD dwMessageID = 0; + WCHAR szModuleName[MAX_PATH]; + + *pdwMessageID = 0; cbKeyPath = (wcslen(EVENTLOG_BASE_KEY) + wcslen(lpLogName) + 1) * sizeof(WCHAR); KeyPath = HeapAlloc(GetProcessHeap(), 0, cbKeyPath); @@ -930,7 +942,7 @@ GetDisplayNameFile(IN LPCWSTR lpLogName, StringCbCopyW(KeyPath, cbKeyPath, EVENTLOG_BASE_KEY); StringCbCatW(KeyPath, cbKeyPath, lpLogName); - if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, KeyPath, 0, KEY_READ, &hKey) != ERROR_SUCCESS) + if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, KeyPath, 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS) { HeapFree(GetProcessHeap(), 0, KeyPath); return FALSE; @@ -942,45 +954,15 @@ GetDisplayNameFile(IN LPCWSTR lpLogName, ExpandEnvironmentStringsW(szModuleName, lpModuleName, MAX_PATH); } - RegCloseKey(hKey); - HeapFree(GetProcessHeap(), 0, KeyPath); - - return TRUE; -} - - -DWORD -GetDisplayNameID(IN LPCWSTR lpLogName) -{ - HKEY hKey; - WCHAR *KeyPath; - DWORD dwMessageID = 0; - DWORD cbData; - SIZE_T cbKeyPath; - - cbKeyPath = (wcslen(EVENTLOG_BASE_KEY) + wcslen(lpLogName) + 1) * sizeof(WCHAR); - KeyPath = HeapAlloc(GetProcessHeap(), 0, cbKeyPath); - if (!KeyPath) - { - return 0; - } - - StringCbCopyW(KeyPath, cbKeyPath, EVENTLOG_BASE_KEY); - StringCbCatW(KeyPath, cbKeyPath, lpLogName); - - if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, KeyPath, 0, KEY_READ, &hKey) != ERROR_SUCCESS) - { - HeapFree(GetProcessHeap(), 0, KeyPath); - return 0; - } - cbData = sizeof(dwMessageID); RegQueryValueExW(hKey, L"DisplayNameID", NULL, NULL, (LPBYTE)&dwMessageID, &cbData); RegCloseKey(hKey); HeapFree(GetProcessHeap(), 0, KeyPath); - return dwMessageID; + *pdwMessageID = dwMessageID; + + return TRUE; } @@ -1018,7 +1000,7 @@ BuildLogList(VOID) DWORD dwMessageID; LPWSTR lpDisplayName; HMODULE hLibrary = NULL; - HTREEITEM hItem = NULL, hItemDefault = NULL; + HTREEITEM hRootNode = NULL, hItem = NULL, hItemDefault = NULL; /* Open the EventLog key */ if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, EVENTLOG_BASE_KEY, 0, KEY_READ, &hKey) != ERROR_SUCCESS) @@ -1082,10 +1064,8 @@ BuildLogList(VOID) lpDisplayName = NULL; ZeroMemory(szModuleName, sizeof(szModuleName)); - if (GetDisplayNameFile(LogNames[dwIndex], szModuleName)) + if (GetDisplayNameFileAndID(LogNames[dwIndex], szModuleName, &dwMessageID)) { - dwMessageID = GetDisplayNameID(LogNames[dwIndex]); - hLibrary = LoadLibraryExW(szModuleName, NULL, LOAD_LIBRARY_AS_IMAGE_RESOURCE | LOAD_LIBRARY_AS_DATAFILE); if (hLibrary != NULL) { @@ -1102,12 +1082,27 @@ BuildLogList(VOID) } } - hItem = TreeViewAddItem(hwndTreeView, htiSystemLogs, + /* + * Select the correct tree root node, whether the log is a System + * or an Application log. Default to Application log otherwise. + */ + hRootNode = htiAppLogs; + for (lpcName = 0; lpcName < ARRAYSIZE(SystemLogs); ++lpcName) + { + /* Check whether the log name is part of the system logs */ + if (wcsicmp(LogNames[dwIndex], SystemLogs[lpcName]) == 0) + { + hRootNode = htiSystemLogs; + break; + } + } + + hItem = TreeViewAddItem(hwndTreeView, hRootNode, (lpDisplayName ? lpDisplayName : LogNames[dwIndex]), 2, 3, dwIndex); /* Try to get the default event log: "Application" */ - if ((hItemDefault == NULL) && (wcsicmp(LogNames[dwIndex], L"Application") == 0)) + if ((hItemDefault == NULL) && (wcsicmp(LogNames[dwIndex], SystemLogs[0]) == 0)) { hItemDefault = hItem; } @@ -1121,9 +1116,12 @@ BuildLogList(VOID) RegCloseKey(hKey); /* Select the default event log */ - TreeView_Expand(hwndTreeView, htiSystemLogs, TVE_EXPAND); - TreeView_SelectItem(hwndTreeView, hItemDefault); - TreeView_EnsureVisible(hwndTreeView, hItemDefault); + if (hItemDefault) + { + // TreeView_Expand(hwndTreeView, hRootNode, TVE_EXPAND); + TreeView_SelectItem(hwndTreeView, hItemDefault); + TreeView_EnsureVisible(hwndTreeView, hItemDefault); + } SetFocus(hwndTreeView); return; @@ -1236,9 +1234,12 @@ InitInstance(HINSTANCE hInstance, // "System Logs" LoadStringW(hInstance, IDS_EVENTLOG_SYSTEM, szTemp, ARRAYSIZE(szTemp)); htiSystemLogs = TreeViewAddItem(hwndTreeView, NULL, szTemp, 0, 1, (LPARAM)-1); + // "Application Logs" + LoadStringW(hInstance, IDS_EVENTLOG_APP, szTemp, ARRAYSIZE(szTemp)); + htiAppLogs = TreeViewAddItem(hwndTreeView, NULL, szTemp, 0, 1, (LPARAM)-1); // "User Logs" LoadStringW(hInstance, IDS_EVENTLOG_USER, szTemp, ARRAYSIZE(szTemp)); - htiUserLogs = TreeViewAddItem(hwndTreeView, NULL, szTemp, 0, 1, (LPARAM)-1); + htiUserLogs = TreeViewAddItem(hwndTreeView, NULL, szTemp, 0, 1, (LPARAM)-1); /* Create the ListView */ hwndListView = CreateWindowExW(WS_EX_CLIENTEDGE, @@ -1370,8 +1371,8 @@ VOID ResizeWnd(INT cx, INT cy) RECT rs; LONG StatusHeight; - /* Size status bar */ - SendMessage(hwndStatus, WM_SIZE, 0, 0); + /* Resize the status bar -- now done in WM_SIZE */ + // SendMessage(hwndStatus, WM_SIZE, 0, 0); GetWindowRect(hwndStatus, &rs); StatusHeight = rs.bottom - rs.top; @@ -1444,6 +1445,16 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (hdr->code) { + case TVN_BEGINLABELEDIT: + { + HTREEITEM hItem = ((LPNMTVDISPINFO)lParam)->item.hItem; + + /* Disable label editing for root nodes */ + return ((hItem == htiSystemLogs) || + (hItem == htiAppLogs) || + (hItem == htiUserLogs)); + } + case TVN_SELCHANGED: { DWORD dwIndex = ((LPNMTREEVIEW)lParam)->itemNew.lParam; @@ -1535,8 +1546,14 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) ScreenToClient(hWnd, &pt); if (pt.x >= nSplitPos - SPLIT_WIDTH/2 && pt.x < nSplitPos + SPLIT_WIDTH/2 + 1) { - SetCursor(LoadCursorW(NULL, IDC_SIZEWE)); - return TRUE; + RECT rs; + GetClientRect(hWnd, &rect); + GetWindowRect(hwndStatus, &rs); + if (pt.y >= rect.top && pt.y < rect.bottom - (rs.bottom - rs.top)) + { + SetCursor(LoadCursorW(NULL, IDC_SIZEWE)); + return TRUE; + } } } goto Default; @@ -1544,7 +1561,6 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) case WM_LBUTTONDOWN: { INT x = GET_X_LPARAM(lParam); - GetClientRect(hWnd, &rect); if (x >= nSplitPos - SPLIT_WIDTH/2 && x < nSplitPos + SPLIT_WIDTH/2 + 1) { SetCapture(hWnd); @@ -1563,11 +1579,6 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) } break; - // case WM_CAPTURECHANGED: - // if (GetCapture() == hWnd && last_split>=0) - // draw_splitbar(hWnd, last_split); - // break; - case WM_MOUSEMOVE: if (GetCapture() == hWnd) { @@ -1586,7 +1597,7 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) case WM_SIZE: { - // GetClientRect(hWnd, &rect); + SendMessage(hwndStatus, WM_SIZE, 0, 0); ResizeWnd(LOWORD(lParam), HIWORD(lParam)); break; } diff --git a/reactos/base/applications/mscutils/eventvwr/lang/bg-BG.rc b/reactos/base/applications/mscutils/eventvwr/lang/bg-BG.rc index 82f10b00029..a97c4cdc7d8 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/bg-BG.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/bg-BG.rc @@ -89,6 +89,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" 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_EVENTLOG_ERROR_TYPE "Error" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/cs-CZ.rc b/reactos/base/applications/mscutils/eventvwr/lang/cs-CZ.rc index df24be830b6..4b8dba689f1 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/cs-CZ.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/cs-CZ.rc @@ -89,6 +89,7 @@ BEGIN IDS_APP_TITLE_EX "%s - Protkol %s na \\\\" IDS_STATUS_MSG "Počet událostí v protokolu %s: %lu" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "Popis ID události ( %lu ) zdroj ( %s ) nebyl nalezen. Místní počítač neobsahuje potřebné informace v registru nebo chybí DLL soubory pro zobrazení zpráv ze vzdáleného počítače.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Chyba" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/de-DE.rc b/reactos/base/applications/mscutils/eventvwr/lang/de-DE.rc index a5e3bd5ec70..e8c7262c570 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/de-DE.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/de-DE.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "Die Bezeichnung für die Ereignis-ID ( %lu ) in der Quelle ( %s ) kann nicht gefunden werden. Es könnte sein, dass der Lokale Computer die notwendigen Registry Einträge oder Nachrichten DLLs, um Nachrichten von Remoten Computern anzuzeigen, nicht besitzt.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Fehler" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/el-GR.rc b/reactos/base/applications/mscutils/eventvwr/lang/el-GR.rc index 52b859663b9..c5fe111c252 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/el-GR.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/el-GR.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "The description for Event ID ( %lu ) in Source ( %s ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Αφάλμα" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/en-US.rc b/reactos/base/applications/mscutils/eventvwr/lang/en-US.rc index 577bf169dae..d0645af8917 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/en-US.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/en-US.rc @@ -97,6 +97,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "The description for Event ID ( %lu ) in Source ( %s ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Error" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/es-ES.rc b/reactos/base/applications/mscutils/eventvwr/lang/es-ES.rc index 68e434038d3..68645e1cf2e 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/es-ES.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/es-ES.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - Registro de %s en \\\\" IDS_STATUS_MSG "%s tiene %lu evento(s)" 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_EVENTLOG_ERROR_TYPE "Error" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/fr-FR.rc b/reactos/base/applications/mscutils/eventvwr/lang/fr-FR.rc index 808552e6ce5..cded4988bd2 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/fr-FR.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/fr-FR.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - Journal %s sur \\\\" IDS_STATUS_MSG "%s contient %lu événement(s)" IDS_EVENTLOG_SYSTEM "Journaux système" + IDS_EVENTLOG_APP "Journaux d'application" IDS_EVENTLOG_USER "Journaux de l'utilisateur" IDS_EVENTSTRINGIDNOTFOUND "La description pour l'événement d'ID ( %lu ) dans la source ( %s ) ne peut être trouvée. L'ordinateur local pourrait ne pas avoir les informations registres nécessaires ou les fichiers DLL de message pour afficher les messages depuis un ordinateur distant.\n\nLes informations suivantes font partie de l'événement :\n\n" IDS_EVENTLOG_ERROR_TYPE "Erreur" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/he-IL.rc b/reactos/base/applications/mscutils/eventvwr/lang/he-IL.rc index 682b1109c3f..d485c7164e6 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/he-IL.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/he-IL.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "The description for Event ID ( %lu ) in Source ( %s ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "שגיאה" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/it-IT.rc b/reactos/base/applications/mscutils/eventvwr/lang/it-IT.rc index eed2f44ba69..7d5465e8963 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/it-IT.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/it-IT.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "La descrizione per l'ID evento ( %lu ) proveniente da ( %s ) non può essere trovata. Il computer locale potrebbe non avere le informazioni sul registry necessarie o i file DLL con i messaggi necessari per la visualizzazione da un computer remoto.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Errore" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/ja-JP.rc b/reactos/base/applications/mscutils/eventvwr/lang/ja-JP.rc index 409072eb9c7..07f62bbf49c 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/ja-JP.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/ja-JP.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "イベント ID (%lu) (ソース %s 内) に関する説明が見つかりませんでした。 リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "エラー" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/ko-KR.rc b/reactos/base/applications/mscutils/eventvwr/lang/ko-KR.rc index 75fd7ecbe1d..edd26b9182c 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/ko-KR.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/ko-KR.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "( %s ) 의 이벤트ID ( %lu ) 에 대한 설명을 찾을 수 없습니다. 로컬 컴퓨터가 원격 컴퓨터의 메세지를 표시하는데 필요한 레지스트리나 DLL 파일을 가지지 않고 있을수 있습니다.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "에러" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/no-NO.rc b/reactos/base/applications/mscutils/eventvwr/lang/no-NO.rc index 5565f9a23c0..6394a532ece 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/no-NO.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/no-NO.rc @@ -89,6 +89,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "Beskrivelsen for Hendelse ID ( %lu ) i kilden ( %s ) kan ikke bli finnet. Lokale datamaskinen har ikke nødvendige register informasjon eller melding DLL filer for å vise melding fra en fjern datamaskin.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Feil" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/pl-PL.rc b/reactos/base/applications/mscutils/eventvwr/lang/pl-PL.rc index f88a7391d58..409a268ebc0 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/pl-PL.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/pl-PL.rc @@ -93,6 +93,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log na \\\\" IDS_STATUS_MSG "%s posiada %lu zdarzeń" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "Opis zdarzenia dla danego numeru ID ( %lu ) nie został odnaleziony w źródle ( %s ). Ten komputer może nie miec wystarczających informacji w rejestrze, albo bibliotek DLL, aby wyświetlić wiadomości z komputera zdalnego.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Błąd" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/pt-BR.rc b/reactos/base/applications/mscutils/eventvwr/lang/pt-BR.rc index 1ca713eec8e..9a4227423c9 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/pt-BR.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/pt-BR.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "A descrição para Event ID ( %lu ) em Fonte ( %s ) não foi encontrado. O computador local talvez não possua a informação de registro necessária ou mensagem de arquivos DLL para exibir mensagens de um computador remoto.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Erro" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/ro-RO.rc b/reactos/base/applications/mscutils/eventvwr/lang/ro-RO.rc index b8db3bc87ef..e449416324d 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/ro-RO.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/ro-RO.rc @@ -94,6 +94,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s autentificat pe \\\\" IDS_STATUS_MSG "%s are %lu eveniment(e)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "Nu se poate găsi descrierea evenimentului cu ID-ul ( %lu ) în sursa ( %s ). Este posibil ca în calculatorul local să nu existe informațiile de registru necesare sau fișierele dll de mesaje să afișeze mesaje de la un calculator din rețea.\n\nInformații aferente evenimentului:\n\n" IDS_EVENTLOG_ERROR_TYPE "Eroare" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/ru-RU.rc b/reactos/base/applications/mscutils/eventvwr/lang/ru-RU.rc index a87db8ecdaf..ab79b7ac1ac 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/ru-RU.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/ru-RU.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" 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_EVENTLOG_ERROR_TYPE "Ошибка" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/sk-SK.rc b/reactos/base/applications/mscutils/eventvwr/lang/sk-SK.rc index 6f29b93ae36..722552faef3 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/sk-SK.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/sk-SK.rc @@ -94,6 +94,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "Popis pre udalosť ID ( %lu ) zo zdroja ( %s ) nebol nájdený. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Chyba" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/sq-AL.rc b/reactos/base/applications/mscutils/eventvwr/lang/sq-AL.rc index 889ff460f22..f42a20dcfba 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/sq-AL.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/sq-AL.rc @@ -97,6 +97,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "Përshkrimi për ngjarjet ID ( %lu ) në burim ( %s ) nuk gjindet. Kompjuter vendas mund të mos ketë informacionin e regjistrit te nevojshem ose mesazhin për dokumentat DLL për të shfaqur nga një kompjuter në distancë.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Error" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/sv-SE.rc b/reactos/base/applications/mscutils/eventvwr/lang/sv-SE.rc index 40c60837b2f..639888ea924 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/sv-SE.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/sv-SE.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "Beskrivning av Händelse ID ( %lu ) i källan ( %s ) kan inte hittas. Lokal dator har inte nödvendig registerinformation eller meddelander DLL filer for å vise meddelander från en fjärr dator.\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "Fel" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/tr-TR.rc b/reactos/base/applications/mscutils/eventvwr/lang/tr-TR.rc index d2a6a5deb59..276a35000e4 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/tr-TR.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/tr-TR.rc @@ -97,6 +97,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Oturum Aç \\\\" IDS_STATUS_MSG "%s -> %lu olay var." IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "( %s ) kaynağındaki ( %lu ) olay kimliği için açıklama bulunamıyor. Yerli bilgisayarda, uzak bilgisayardan iletileri görüntülemesi için gerekli Değer Defteri bilgisi veyâ ileti DLL kütükleri olmayabilir.\n\nAşağıdaki bilgi olayın parçasıdır:\n\n" IDS_EVENTLOG_ERROR_TYPE "Yanlışlık" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/uk-UA.rc b/reactos/base/applications/mscutils/eventvwr/lang/uk-UA.rc index ba4bc92e913..68b909776b2 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/uk-UA.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/uk-UA.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" 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_EVENTLOG_ERROR_TYPE "Помилка" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/zh-CN.rc b/reactos/base/applications/mscutils/eventvwr/lang/zh-CN.rc index c8cec45ebdf..fa88d10fa35 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/zh-CN.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/zh-CN.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "来源 ( %s ) 中的事件 ID ( %lu ) 的描述无法找到。本地计算机可能没有显示来自远程计算机消息所必需的注册表信息或消息 DLL 文件。\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "错误" diff --git a/reactos/base/applications/mscutils/eventvwr/lang/zh-TW.rc b/reactos/base/applications/mscutils/eventvwr/lang/zh-TW.rc index 82a1b8e495b..4a0852c79f6 100644 --- a/reactos/base/applications/mscutils/eventvwr/lang/zh-TW.rc +++ b/reactos/base/applications/mscutils/eventvwr/lang/zh-TW.rc @@ -91,6 +91,7 @@ BEGIN IDS_APP_TITLE_EX "%s - %s Log on \\\\" IDS_STATUS_MSG "%s has %lu event(s)" IDS_EVENTLOG_SYSTEM "System Logs" + IDS_EVENTLOG_APP "Application Logs" IDS_EVENTLOG_USER "User Logs" IDS_EVENTSTRINGIDNOTFOUND "來源 ( %s ) 中的事件 ID ( %lu ) 的描述無法找到。 本地電腦可能沒有顯示來自遠端電腦消息所必需的註冊表資訊或消息 DLL 檔。\n\nThe following information is part of the event:\n\n" IDS_EVENTLOG_ERROR_TYPE "錯誤" diff --git a/reactos/base/applications/mscutils/eventvwr/resource.h b/reactos/base/applications/mscutils/eventvwr/resource.h index 8801055ee39..abef9185276 100644 --- a/reactos/base/applications/mscutils/eventvwr/resource.h +++ b/reactos/base/applications/mscutils/eventvwr/resource.h @@ -62,7 +62,8 @@ #define IDS_APP_TITLE_EX 104 #define IDS_STATUS_MSG 106 #define IDS_EVENTLOG_SYSTEM 107 -#define IDS_EVENTLOG_USER 108 +#define IDS_EVENTLOG_APP 108 +#define IDS_EVENTLOG_USER 109 #define IDS_EVENTSTRINGIDNOTFOUND 209 #define IDS_EVENTLOG_ERROR_TYPE 251 #define IDS_EVENTLOG_WARNING_TYPE 252 -- 2.17.1