[EVENTVWR]
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sat, 9 Jul 2016 12:32:21 +0000 (12:32 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sat, 9 Jul 2016 12:32:21 +0000 (12:32 +0000)
- 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

25 files changed:
reactos/base/applications/mscutils/eventvwr/eventvwr.c
reactos/base/applications/mscutils/eventvwr/lang/bg-BG.rc
reactos/base/applications/mscutils/eventvwr/lang/cs-CZ.rc
reactos/base/applications/mscutils/eventvwr/lang/de-DE.rc
reactos/base/applications/mscutils/eventvwr/lang/el-GR.rc
reactos/base/applications/mscutils/eventvwr/lang/en-US.rc
reactos/base/applications/mscutils/eventvwr/lang/es-ES.rc
reactos/base/applications/mscutils/eventvwr/lang/fr-FR.rc
reactos/base/applications/mscutils/eventvwr/lang/he-IL.rc
reactos/base/applications/mscutils/eventvwr/lang/it-IT.rc
reactos/base/applications/mscutils/eventvwr/lang/ja-JP.rc
reactos/base/applications/mscutils/eventvwr/lang/ko-KR.rc
reactos/base/applications/mscutils/eventvwr/lang/no-NO.rc
reactos/base/applications/mscutils/eventvwr/lang/pl-PL.rc
reactos/base/applications/mscutils/eventvwr/lang/pt-BR.rc
reactos/base/applications/mscutils/eventvwr/lang/ro-RO.rc
reactos/base/applications/mscutils/eventvwr/lang/ru-RU.rc
reactos/base/applications/mscutils/eventvwr/lang/sk-SK.rc
reactos/base/applications/mscutils/eventvwr/lang/sq-AL.rc
reactos/base/applications/mscutils/eventvwr/lang/sv-SE.rc
reactos/base/applications/mscutils/eventvwr/lang/tr-TR.rc
reactos/base/applications/mscutils/eventvwr/lang/uk-UA.rc
reactos/base/applications/mscutils/eventvwr/lang/zh-CN.rc
reactos/base/applications/mscutils/eventvwr/lang/zh-TW.rc
reactos/base/applications/mscutils/eventvwr/resource.h

index decd991..f8ed398 100644 (file)
@@ -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;
         }
index 82f10b0..a97c4cd 100644 (file)
@@ -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"
index df24be8..4b8dba6 100644 (file)
@@ -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"
index a5e3bd5..e8c7262 100644 (file)
@@ -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"
index 52b8596..c5fe111 100644 (file)
@@ -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 "Αφάλμα"
index 577bf16..d0645af 100644 (file)
@@ -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"
index 68e4340..68645e1 100644 (file)
@@ -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"
index 808552e..cded498 100644 (file)
@@ -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"
index 682b110..d485c71 100644 (file)
@@ -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 "שגיאה"
index eed2f44..7d5465e 100644 (file)
@@ -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"
index 409072e..07f62bb 100644 (file)
@@ -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 "エラー"
index 75fd7ec..edd26b9 100644 (file)
@@ -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 "에러"
index 5565f9a..6394a53 100644 (file)
@@ -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"
index f88a739..409a268 100644 (file)
@@ -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"
index 1ca713e..9a42274 100644 (file)
@@ -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"
index b8db3bc..e449416 100644 (file)
@@ -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"
index a87db8e..ab79b7a 100644 (file)
@@ -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 "Ошибка"
index 6f29b93..722552f 100644 (file)
@@ -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"
index 889ff46..f42a20d 100644 (file)
@@ -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"
index 40c6083..639888e 100644 (file)
@@ -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"
index d2a6a5d..276a350 100644 (file)
@@ -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"
index ba4bc92..68b9097 100644 (file)
@@ -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 "Помилка"
index c8cec45..fa88d10 100644 (file)
@@ -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 "错误"
index 82a1b8e..4a0852c 100644 (file)
@@ -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 "錯誤"
index 8801055..abef918 100644 (file)
@@ -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