[EVENTEVWR]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sun, 1 Jun 2014 11:00:09 +0000 (11:00 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sun, 1 Jun 2014 11:00:09 +0000 (11:00 +0000)
* when displaying message boxes, set the parent to the main window/details dialog instead of using NULL.
*add a function for showing the last Win32 error and replace two message boxes with a call to it.
*add the ability to save event logs to a file.
*add the ability to clear event logs.
*In QueryEventMessages(), assign lpSourceLogName and lpComputerName after the call to OpenEventLog, not before.
Patch by Ricardo Hanke
CORE-7863 #comment Comitted in r63525, thanks

svn path=/trunk/; revision=63525

24 files changed:
reactos/base/applications/mscutils/eventvwr/CMakeLists.txt
reactos/base/applications/mscutils/eventvwr/eventvwr.c
reactos/base/applications/mscutils/eventvwr/lang/bg-BG.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/resource.h

index a15680e..fff7e3a 100644 (file)
@@ -1,7 +1,7 @@
 
 add_executable(eventvwr eventvwr.c eventvwr.rc)
 set_module_type(eventvwr win32gui UNICODE)
 
 add_executable(eventvwr eventvwr.c eventvwr.rc)
 set_module_type(eventvwr win32gui UNICODE)
-add_importlibs(eventvwr user32 comctl32 advapi32 msvcrt kernel32)
+add_importlibs(eventvwr user32 comctl32 comdlg32 advapi32 msvcrt kernel32)
 if(MSVC)
     add_importlibs(eventvwr ntdll)
 endif()
 if(MSVC)
     add_importlibs(eventvwr ntdll)
 endif()
index 8d0a019..86b7666 100644 (file)
 #include <windef.h>
 #include <winbase.h>
 #include <winuser.h>
 #include <windef.h>
 #include <winbase.h>
 #include <winuser.h>
+#include <wingdi.h>
 #include <winnls.h>
 #include <winreg.h>
 #include <commctrl.h>
 #include <winnls.h>
 #include <winreg.h>
 #include <commctrl.h>
+#include <commdlg.h>
 
 #include "resource.h"
 
 
 #include "resource.h"
 
@@ -42,7 +44,7 @@
 static const LPWSTR EVENT_SOURCE_APPLICATION = L"Application";
 static const LPWSTR EVENT_SOURCE_SECURITY    = L"Security";
 static const LPWSTR EVENT_SOURCE_SYSTEM      = L"System";
 static const LPWSTR EVENT_SOURCE_APPLICATION = L"Application";
 static const LPWSTR EVENT_SOURCE_SECURITY    = L"Security";
 static const LPWSTR EVENT_SOURCE_SYSTEM      = L"System";
-static const WCHAR szWindowClass[]          = L"EVENTVWR"; /* the main window class name*/
+static const WCHAR szWindowClass[]           = L"EVENTVWR"; /* the main window class name*/
 
 //MessageFile message buffer size
 #define EVENT_MESSAGE_EVENTTEXT_BUFFER  1024*10
 
 //MessageFile message buffer size
 #define EVENT_MESSAGE_EVENTTEXT_BUFFER  1024*10
@@ -58,12 +60,15 @@ static const WCHAR szWindowClass[]          = L"EVENTVWR"; /* the main window cl
 HINSTANCE hInst;                            /* current instance */
 WCHAR szTitle[MAX_LOADSTRING];              /* The title bar text */
 WCHAR szTitleTemplate[MAX_LOADSTRING];      /* The logged-on title bar text */
 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 */
 HWND hwndMainWindow;                        /* Main window */
 HWND hwndListView;                          /* ListView control */
 HWND hwndStatus;                            /* Status bar */
 HWND hwndMainWindow;                        /* Main window */
 HWND hwndListView;                          /* ListView control */
 HWND hwndStatus;                            /* Status bar */
+HMENU hMainMenu;                            /* The application's main menu */
 WCHAR szStatusBarTemplate[MAX_LOADSTRING];  /* The status bar text */
 PEVENTLOGRECORD *g_RecordPtrs = NULL;
 DWORD g_TotalRecords = 0;
 WCHAR szStatusBarTemplate[MAX_LOADSTRING];  /* The status bar text */
 PEVENTLOGRECORD *g_RecordPtrs = NULL;
 DWORD g_TotalRecords = 0;
+OPENFILENAMEW sfn;
 
 LPWSTR lpSourceLogName = NULL;
 LPWSTR lpComputerName  = NULL;
 
 LPWSTR lpSourceLogName = NULL;
 LPWSTR lpComputerName  = NULL;
@@ -137,6 +142,25 @@ static void FreeRecords(void)
     g_RecordPtrs = NULL;
 }
 
     g_RecordPtrs = NULL;
 }
 
+VOID
+ShowLastWin32Error(VOID)
+{
+    DWORD dwError;
+    LPWSTR lpMessageBuffer;
+
+    dwError = GetLastError();
+    FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+                   NULL,
+                   dwError,
+                   0,
+                   (LPWSTR)&lpMessageBuffer,
+                   0,
+                   NULL);
+
+    MessageBoxW(hwndMainWindow, lpMessageBuffer, szTitle, MB_OK | MB_ICONERROR);
+    LocalFree(lpMessageBuffer);
+}
+
 VOID
 EventTimeToSystemTime(DWORD EventTime,
                       SYSTEMTIME *pSystemTime)
 VOID
 EventTimeToSystemTime(DWORD EventTime,
                       SYSTEMTIME *pSystemTime)
@@ -219,10 +243,7 @@ GetEventMessageFileDLL(IN LPCWSTR lpLogName,
     }
     else
     {
     }
     else
     {
-        MessageBoxW(NULL,
-                   L"Registry access failed!",
-                   L"Event Log",
-                   MB_OK | MB_ICONINFORMATION);
+        ShowLastWin32Error();
     }
 
     if (hSourceKey != NULL)
     }
 
     if (hSourceKey != NULL)
@@ -524,21 +545,18 @@ QueryEventMessages(LPWSTR lpMachineName,
 
     dwFlags = EVENTLOG_FORWARDS_READ | EVENTLOG_SEQUENTIAL_READ;
 
 
     dwFlags = EVENTLOG_FORWARDS_READ | EVENTLOG_SEQUENTIAL_READ;
 
-    lpSourceLogName = lpLogName;
-    lpComputerName = lpMachineName;
-
     /* Open the event log. */
     hEventLog = OpenEventLogW(lpMachineName,
                              lpLogName);
     if (hEventLog == NULL)
     {
     /* Open the event log. */
     hEventLog = OpenEventLogW(lpMachineName,
                              lpLogName);
     if (hEventLog == NULL)
     {
-        MessageBoxW(NULL,
-                   L"Could not open the event log.",
-                   L"Event Log",
-                   MB_OK | MB_ICONINFORMATION);
+        ShowLastWin32Error();
         return FALSE;
     }
 
         return FALSE;
     }
 
+    lpSourceLogName = lpLogName;
+    lpComputerName = lpMachineName;
+
     /* Disable listview redraw */
     SendMessage(hwndListView, WM_SETREDRAW, FALSE, 0);
 
     /* Disable listview redraw */
     SendMessage(hwndListView, WM_SETREDRAW, FALSE, 0);
 
@@ -552,6 +570,17 @@ QueryEventMessages(LPWSTR lpMachineName,
     GetNumberOfEventLogRecords (hEventLog , &dwTotalRecords);
     g_TotalRecords = dwTotalRecords;
 
     GetNumberOfEventLogRecords (hEventLog , &dwTotalRecords);
     g_TotalRecords = dwTotalRecords;
 
+    if (dwTotalRecords > 0)
+    {
+        EnableMenuItem(hMainMenu, ID_CLEAR_EVENTS, MF_BYCOMMAND | MF_ENABLED);
+        EnableMenuItem(hMainMenu, ID_SAVE_PROTOCOL, MF_BYCOMMAND | MF_ENABLED);
+    }
+    else
+    {
+        EnableMenuItem(hMainMenu, ID_CLEAR_EVENTS, MF_BYCOMMAND | MF_GRAYED);
+        EnableMenuItem(hMainMenu, ID_SAVE_PROTOCOL, MF_BYCOMMAND | MF_GRAYED);
+    }
+
     g_RecordPtrs = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwTotalRecords * sizeof(PVOID));
 
     /* If we have at least 1000 records show the waiting dialog */
     g_RecordPtrs = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwTotalRecords * sizeof(PVOID));
 
     /* If we have at least 1000 records show the waiting dialog */
@@ -710,6 +739,97 @@ QueryEventMessages(LPWSTR lpMachineName,
 }
 
 
 }
 
 
+VOID
+SaveProtocol(VOID)
+{
+    HANDLE hEventLog;
+    WCHAR szFileName[MAX_PATH];
+
+    ZeroMemory(szFileName, sizeof(szFileName));
+
+    sfn.lpstrFile = szFileName;
+    sfn.nMaxFile  = MAX_PATH;
+
+    if (!GetSaveFileNameW(&sfn))
+    {
+        return;
+    }
+
+    hEventLog = OpenEventLogW(lpComputerName, lpSourceLogName);
+    if (!hEventLog)
+    {
+        ShowLastWin32Error();
+        return;
+    }
+
+    if (!BackupEventLogW(hEventLog, szFileName))
+    {
+        ShowLastWin32Error();
+    }
+
+    CloseEventLog(hEventLog);
+}
+
+
+BOOL
+ClearEvents(VOID)
+{
+    HANDLE hEventLog;
+    WCHAR szFileName[MAX_PATH];
+    WCHAR szMessage[MAX_LOADSTRING];
+
+    ZeroMemory(szFileName, sizeof(szFileName));
+    ZeroMemory(szMessage, sizeof(szMessage));
+
+    LoadStringW(hInst, IDS_CLEAREVENTS_MSG, szMessage, MAX_LOADSTRING);
+
+    sfn.lpstrFile = szFileName;
+    sfn.nMaxFile  = MAX_PATH;
+
+    switch (MessageBoxW(hwndMainWindow, szMessage, szTitle, MB_YESNOCANCEL | MB_ICONINFORMATION))
+    {
+        case IDCANCEL:
+        {
+            return FALSE;
+            break;
+        }
+
+        case IDNO:
+        {
+            sfn.lpstrFile = NULL;
+            break;
+        }
+
+        case IDYES:
+        {
+            if (!GetSaveFileNameW(&sfn))
+            {
+                return FALSE;
+            }
+            break;
+        }
+    }
+
+    hEventLog = OpenEventLogW(lpComputerName, lpSourceLogName);
+    if (!hEventLog)
+    {
+        ShowLastWin32Error();
+        return FALSE;
+    }
+
+    if (!ClearEventLogW(hEventLog, sfn.lpstrFile))
+    {
+        ShowLastWin32Error();
+        CloseEventLog(hEventLog);
+        return FALSE;
+    }
+
+    CloseEventLog(hEventLog);
+
+    return TRUE;
+}
+
+
 VOID
 Refresh(VOID)
 {
 VOID
 Refresh(VOID)
 {
@@ -905,6 +1025,20 @@ InitInstance(HINSTANCE hInstance,
     lvc.pszText = szTemp;
     (void)ListView_InsertColumn(hwndListView, 8, &lvc);
 
     lvc.pszText = szTemp;
     (void)ListView_InsertColumn(hwndListView, 8, &lvc);
 
+    // Initialize the save Dialog
+    ZeroMemory(&sfn, sizeof(sfn));
+    ZeroMemory(szSaveFilter, sizeof(szSaveFilter));
+
+    LoadStringW(hInst, IDS_SAVE_FILTER, szSaveFilter, MAX_LOADSTRING);
+
+    sfn.lStructSize     = sizeof(sfn);
+    sfn.hwndOwner       = hwndMainWindow;
+    sfn.hInstance       = hInstance;
+    sfn.lpstrFilter     = szSaveFilter;
+    sfn.lpstrInitialDir = NULL;
+    sfn.Flags           = OFN_HIDEREADONLY | OFN_SHAREAWARE;
+    sfn.lpstrDefExt     = NULL;
+
     ShowWindow(hwndMainWindow, nCmdShow);
     UpdateWindow(hwndMainWindow);
 
     ShowWindow(hwndMainWindow, nCmdShow);
     UpdateWindow(hwndMainWindow);
 
@@ -934,6 +1068,7 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
     switch (message)
     {
         case WM_CREATE:
     switch (message)
     {
         case WM_CREATE:
+            hMainMenu = GetMenu(hWnd);
             CheckMenuRadioItem(GetMenu(hWnd),
                                ID_LOG_APPLICATION,
                                ID_LOG_SYSTEM,
             CheckMenuRadioItem(GetMenu(hWnd),
                                ID_LOG_APPLICATION,
                                ID_LOG_SYSTEM,
@@ -1002,6 +1137,17 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
                     }
                     break;
 
                     }
                     break;
 
+                case ID_SAVE_PROTOCOL:
+                    SaveProtocol();
+                    break;
+
+                case ID_CLEAR_EVENTS:
+                    if (ClearEvents())
+                    {
+                        Refresh();
+                    }
+                    break;
+
                 case IDM_REFRESH:
                     Refresh();
                     break;
                 case IDM_REFRESH:
                     Refresh();
                     break;
@@ -1011,7 +1157,7 @@ WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
                     break;
 
                 case IDM_HELP:
                     break;
 
                 case IDM_HELP:
-                    MessageBoxW(NULL,
+                    MessageBoxW(hwndMainWindow,
                                L"Help not implemented yet!",
                                L"Event Log",
                                MB_OK | MB_ICONINFORMATION);
                                L"Help not implemented yet!",
                                L"Event Log",
                                MB_OK | MB_ICONINFORMATION);
@@ -1221,7 +1367,7 @@ EventDetails(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
                     return (INT_PTR)TRUE;
 
                 case IDHELP:
                     return (INT_PTR)TRUE;
 
                 case IDHELP:
-                    MessageBoxW(NULL,
+                    MessageBoxW(hDlg,
                                L"Help not implemented yet!",
                                L"Event Log",
                                MB_OK | MB_ICONINFORMATION);
                                L"Help not implemented yet!",
                                L"Event Log",
                                MB_OK | MB_ICONINFORMATION);
index 6476b51..3608022 100644 (file)
@@ -8,6 +8,10 @@ BEGIN
         MENUITEM "&Сигурност", ID_LOG_SECURITY
         MENUITEM "&Уредба", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Сигурност", ID_LOG_SECURITY
         MENUITEM "&Уредба", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "Из&ход", IDM_EXIT
     END
     POPUP "Из&глед"
         MENUITEM "Из&ход", IDM_EXIT
     END
     POPUP "Из&глед"
@@ -95,6 +99,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Audit Failure"
     IDS_EVENTLOG_SUCCESS "Success"
     IDS_EVENTLOG_UNKNOWN_TYPE "Unknown Event"
     IDS_EVENTLOG_AUDIT_FAILURE "Audit Failure"
     IDS_EVENTLOG_SUCCESS "Success"
     IDS_EVENTLOG_UNKNOWN_TYPE "Unknown Event"
+    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
 END
 
 STRINGTABLE
index e7e87e9..e9c0234 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "&Sicherheit", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Sicherheit", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Protokoll s&peichern...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "Alle E&reignisse löschen", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "B&eenden", IDM_EXIT
     END
     POPUP "&Ansicht"
         MENUITEM "B&eenden", IDM_EXIT
     END
     POPUP "&Ansicht"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Audit Fehlgeschlagen"
     IDS_EVENTLOG_SUCCESS "Erfolgreich"
     IDS_EVENTLOG_UNKNOWN_TYPE "Unbekanntes Ereignis"
     IDS_EVENTLOG_AUDIT_FAILURE "Audit Fehlgeschlagen"
     IDS_EVENTLOG_SUCCESS "Erfolgreich"
     IDS_EVENTLOG_UNKNOWN_TYPE "Unbekanntes Ereignis"
+    IDS_CLEAREVENTS_MSG "Möchten Sie dieses Protokoll vor dem Löschen speichern?"
+    IDS_SAVE_FILTER "Ereignisprotokoll (*.evt)\0*.evt\0"
 END
 
 STRINGTABLE
 END
 
 STRINGTABLE
index 56dd3ab..e4e757b 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "&Ασφάλεια", ID_LOG_SECURITY
         MENUITEM "&Σύστημα", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Ασφάλεια", ID_LOG_SECURITY
         MENUITEM "&Σύστημα", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "Έ&ξοδος", IDM_EXIT
     END
     POPUP "&Εμφάνιση"
         MENUITEM "Έ&ξοδος", IDM_EXIT
     END
     POPUP "&Εμφάνιση"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Audit Failure"
     IDS_EVENTLOG_SUCCESS "Επιτυχία"
     IDS_EVENTLOG_UNKNOWN_TYPE "Άγνωστο συμβάν"
     IDS_EVENTLOG_AUDIT_FAILURE "Audit Failure"
     IDS_EVENTLOG_SUCCESS "Επιτυχία"
     IDS_EVENTLOG_UNKNOWN_TYPE "Άγνωστο συμβάν"
+    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
 END
 
 STRINGTABLE
index 3ab08cb..a022479 100644 (file)
@@ -16,6 +16,10 @@ BEGIN
         MENUITEM "&Security", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Security", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "E&xit", IDM_EXIT
     END
     POPUP "&View"
         MENUITEM "E&xit", IDM_EXIT
     END
     POPUP "&View"
@@ -103,6 +107,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Audit Failure"
     IDS_EVENTLOG_SUCCESS "Success"
     IDS_EVENTLOG_UNKNOWN_TYPE "Unknown Event"
     IDS_EVENTLOG_AUDIT_FAILURE "Audit Failure"
     IDS_EVENTLOG_SUCCESS "Success"
     IDS_EVENTLOG_UNKNOWN_TYPE "Unknown Event"
+    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
 END
 
 STRINGTABLE
index 5195415..d7dfb8b 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "&Seguridad", ID_LOG_SECURITY
         MENUITEM "&Sistema", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Seguridad", ID_LOG_SECURITY
         MENUITEM "&Sistema", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "S&alir", IDM_EXIT
     END
     POPUP "&Ver"
         MENUITEM "S&alir", IDM_EXIT
     END
     POPUP "&Ver"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Auditoria Fallida"
     IDS_EVENTLOG_SUCCESS "Acierto"
     IDS_EVENTLOG_UNKNOWN_TYPE "Evento Desconocido"
     IDS_EVENTLOG_AUDIT_FAILURE "Auditoria Fallida"
     IDS_EVENTLOG_SUCCESS "Acierto"
     IDS_EVENTLOG_UNKNOWN_TYPE "Evento Desconocido"
+    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
 END
 
 STRINGTABLE
index 42732e3..f123ba5 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "&Sécurité", ID_LOG_SECURITY
         MENUITEM "&Système", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Sécurité", ID_LOG_SECURITY
         MENUITEM "&Système", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "Quitter", IDM_EXIT
     END
     POPUP "Affichage"
         MENUITEM "Quitter", IDM_EXIT
     END
     POPUP "Affichage"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Échec de l'audit"
     IDS_EVENTLOG_SUCCESS "Succès"
     IDS_EVENTLOG_UNKNOWN_TYPE "Événement Inconnu"
     IDS_EVENTLOG_AUDIT_FAILURE "Échec de l'audit"
     IDS_EVENTLOG_SUCCESS "Succès"
     IDS_EVENTLOG_UNKNOWN_TYPE "Événement Inconnu"
+    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
 END
 
 STRINGTABLE
index 0dffb05..aafdb5b 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "אבטחה", ID_LOG_SECURITY
         MENUITEM "מערכת", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "אבטחה", ID_LOG_SECURITY
         MENUITEM "מערכת", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "יציאה", IDM_EXIT
     END
     POPUP "תצוגה"
         MENUITEM "יציאה", IDM_EXIT
     END
     POPUP "תצוגה"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Audit Failure"
     IDS_EVENTLOG_SUCCESS "הצלחה"
     IDS_EVENTLOG_UNKNOWN_TYPE "אירוע לא ידוע"
     IDS_EVENTLOG_AUDIT_FAILURE "Audit Failure"
     IDS_EVENTLOG_SUCCESS "הצלחה"
     IDS_EVENTLOG_UNKNOWN_TYPE "אירוע לא ידוע"
+    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
 END
 
 STRINGTABLE
index 24a7587..d1543a1 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "&Sicurezza", ID_LOG_SECURITY
         MENUITEM "&Sistema", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Sicurezza", ID_LOG_SECURITY
         MENUITEM "&Sistema", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "E&sci", IDM_EXIT
     END
     POPUP "&Vista"
         MENUITEM "E&sci", IDM_EXIT
     END
     POPUP "&Vista"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Audit fallita"
     IDS_EVENTLOG_SUCCESS "Successo"
     IDS_EVENTLOG_UNKNOWN_TYPE "Evento sconosciuto"
     IDS_EVENTLOG_AUDIT_FAILURE "Audit fallita"
     IDS_EVENTLOG_SUCCESS "Successo"
     IDS_EVENTLOG_UNKNOWN_TYPE "Evento sconosciuto"
+    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
 END
 
 STRINGTABLE
index 07af812..5fb5194 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "セキュリティ(&S)", ID_LOG_SECURITY
         MENUITEM "システム(&S)", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "セキュリティ(&S)", ID_LOG_SECURITY
         MENUITEM "システム(&S)", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "終了(&X)", IDM_EXIT
     END
     POPUP "表示(&V)"
         MENUITEM "終了(&X)", IDM_EXIT
     END
     POPUP "表示(&V)"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "失敗の監査"
     IDS_EVENTLOG_SUCCESS "成功"
     IDS_EVENTLOG_UNKNOWN_TYPE "不明なイベント"
     IDS_EVENTLOG_AUDIT_FAILURE "失敗の監査"
     IDS_EVENTLOG_SUCCESS "成功"
     IDS_EVENTLOG_UNKNOWN_TYPE "不明なイベント"
+    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
 END
 
 STRINGTABLE
index a8ed9d6..5d02fc0 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "보안(&S)", ID_LOG_SECURITY
         MENUITEM "시스템(&S)", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "보안(&S)", ID_LOG_SECURITY
         MENUITEM "시스템(&S)", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "종료(&X)", IDM_EXIT
     END
     POPUP "보기(&V)"
         MENUITEM "종료(&X)", IDM_EXIT
     END
     POPUP "보기(&V)"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "감사 실패"
     IDS_EVENTLOG_SUCCESS "성공"
     IDS_EVENTLOG_UNKNOWN_TYPE "알려지지 않은 이벤트"
     IDS_EVENTLOG_AUDIT_FAILURE "감사 실패"
     IDS_EVENTLOG_SUCCESS "성공"
     IDS_EVENTLOG_UNKNOWN_TYPE "알려지지 않은 이벤트"
+    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
 END
 
 STRINGTABLE
index 79e28b4..f66eca5 100644 (file)
@@ -8,6 +8,10 @@ BEGIN
         MENUITEM "&Sikkerhet", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Sikkerhet", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "A&vslutt", IDM_EXIT
     END
     POPUP "&Vis"
         MENUITEM "A&vslutt", IDM_EXIT
     END
     POPUP "&Vis"
@@ -95,6 +99,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Revisjon misslykkes"
     IDS_EVENTLOG_SUCCESS "Suksess"
     IDS_EVENTLOG_UNKNOWN_TYPE "Ukjent hendelse"
     IDS_EVENTLOG_AUDIT_FAILURE "Revisjon misslykkes"
     IDS_EVENTLOG_SUCCESS "Suksess"
     IDS_EVENTLOG_UNKNOWN_TYPE "Ukjent hendelse"
+    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
 END
 
 STRINGTABLE
index 1c6732b..549269c 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "&Zabezpieczenia", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Zabezpieczenia", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "&Wyjście", IDM_EXIT
     END
     POPUP "&Podgląd"
         MENUITEM "&Wyjście", IDM_EXIT
     END
     POPUP "&Podgląd"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Nieudany Audyt"
     IDS_EVENTLOG_SUCCESS "Sukces"
     IDS_EVENTLOG_UNKNOWN_TYPE "Zdarzenie nieznane"
     IDS_EVENTLOG_AUDIT_FAILURE "Nieudany Audyt"
     IDS_EVENTLOG_SUCCESS "Sukces"
     IDS_EVENTLOG_UNKNOWN_TYPE "Zdarzenie nieznane"
+    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
 END
 
 STRINGTABLE
index a8bd572..47f33b2 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "S&egurança", ID_LOG_SECURITY
         MENUITEM "&Sistema", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "S&egurança", ID_LOG_SECURITY
         MENUITEM "&Sistema", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "&Sair", IDM_EXIT
     END
     POPUP "&Visualizar"
         MENUITEM "&Sair", IDM_EXIT
     END
     POPUP "&Visualizar"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Falha na Auditoria"
     IDS_EVENTLOG_SUCCESS "Sucesso"
     IDS_EVENTLOG_UNKNOWN_TYPE "Evento Desconhecido"
     IDS_EVENTLOG_AUDIT_FAILURE "Falha na Auditoria"
     IDS_EVENTLOG_SUCCESS "Sucesso"
     IDS_EVENTLOG_UNKNOWN_TYPE "Evento Desconhecido"
+    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
 END
 
 STRINGTABLE
index 6268300..473f875 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "Se&curitate", ID_LOG_SECURITY
         MENUITEM "&Sistem", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "Se&curitate", ID_LOG_SECURITY
         MENUITEM "&Sistem", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "I&eșire", IDM_EXIT
     END
     POPUP "&Afișare"
         MENUITEM "I&eșire", IDM_EXIT
     END
     POPUP "&Afișare"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Eșec audit"
     IDS_EVENTLOG_SUCCESS "Succes"
     IDS_EVENTLOG_UNKNOWN_TYPE "Eveniment necunoscut"
     IDS_EVENTLOG_AUDIT_FAILURE "Eșec audit"
     IDS_EVENTLOG_SUCCESS "Succes"
     IDS_EVENTLOG_UNKNOWN_TYPE "Eveniment necunoscut"
+    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
 END
 
 STRINGTABLE
index 4da2d57..8a1a767 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "&Безопасности", ID_LOG_SECURITY
         MENUITEM "&Системы", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Безопасности", ID_LOG_SECURITY
         MENUITEM "&Системы", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "В&ыход", IDM_EXIT
     END
     POPUP "&Вид"
         MENUITEM "В&ыход", IDM_EXIT
     END
     POPUP "&Вид"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Аудит отказов"
     IDS_EVENTLOG_SUCCESS "Успех"
     IDS_EVENTLOG_UNKNOWN_TYPE "Неизвестное событие"
     IDS_EVENTLOG_AUDIT_FAILURE "Аудит отказов"
     IDS_EVENTLOG_SUCCESS "Успех"
     IDS_EVENTLOG_UNKNOWN_TYPE "Неизвестное событие"
+    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
 END
 
 STRINGTABLE
index eb3a99f..a751ec0 100644 (file)
@@ -13,6 +13,10 @@ BEGIN
         MENUITEM "&Security", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Security", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "&Skončiť", IDM_EXIT
     END
     POPUP "&Zobraziť"
         MENUITEM "&Skončiť", IDM_EXIT
     END
     POPUP "&Zobraziť"
@@ -100,6 +104,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Kontrola zlyhala"
     IDS_EVENTLOG_SUCCESS "Úspech" //Success
     IDS_EVENTLOG_UNKNOWN_TYPE "Neznáma udalosť"
     IDS_EVENTLOG_AUDIT_FAILURE "Kontrola zlyhala"
     IDS_EVENTLOG_SUCCESS "Úspech" //Success
     IDS_EVENTLOG_UNKNOWN_TYPE "Neznáma udalosť"
+    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
 END
 
 STRINGTABLE
index 65e869f..bb0be34 100644 (file)
@@ -16,6 +16,10 @@ BEGIN
         MENUITEM "&Siguri", ID_LOG_SECURITY
         MENUITEM "&Sistemi", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Siguri", ID_LOG_SECURITY
         MENUITEM "&Sistemi", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "Dil", IDM_EXIT
     END
     POPUP "&Vëzhgo"
         MENUITEM "Dil", IDM_EXIT
     END
     POPUP "&Vëzhgo"
@@ -103,6 +107,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Audit dështoj"
     IDS_EVENTLOG_SUCCESS "Sukses"
     IDS_EVENTLOG_UNKNOWN_TYPE "Ngjraje e panjohur"
     IDS_EVENTLOG_AUDIT_FAILURE "Audit dështoj"
     IDS_EVENTLOG_SUCCESS "Sukses"
     IDS_EVENTLOG_UNKNOWN_TYPE "Ngjraje e panjohur"
+    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
 END
 
 STRINGTABLE
index b9241cb..f9eb385 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "&Säkerhet", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Säkerhet", ID_LOG_SECURITY
         MENUITEM "&System", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "A&vsluta", IDM_EXIT
     END
     POPUP "&Visa"
         MENUITEM "A&vsluta", IDM_EXIT
     END
     POPUP "&Visa"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Revision misslyckades"
     IDS_EVENTLOG_SUCCESS "Uppgift lyckades"
     IDS_EVENTLOG_UNKNOWN_TYPE "Okänd händelse"
     IDS_EVENTLOG_AUDIT_FAILURE "Revision misslyckades"
     IDS_EVENTLOG_SUCCESS "Uppgift lyckades"
     IDS_EVENTLOG_UNKNOWN_TYPE "Okänd händelse"
+    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
 END
 
 STRINGTABLE
index 50cc321..e60c19c 100644 (file)
@@ -16,6 +16,10 @@ BEGIN
         MENUITEM "&Güvenlik", ID_LOG_SECURITY
         MENUITEM "&Dizge", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Güvenlik", ID_LOG_SECURITY
         MENUITEM "&Dizge", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "&Çıkış", IDM_EXIT
     END
     POPUP "&Görünüm"
         MENUITEM "&Çıkış", IDM_EXIT
     END
     POPUP "&Görünüm"
@@ -103,6 +107,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Başarısızlık Denetimi"
     IDS_EVENTLOG_SUCCESS "Başarı"
     IDS_EVENTLOG_UNKNOWN_TYPE "Bilinmeyen Olay"
     IDS_EVENTLOG_AUDIT_FAILURE "Başarısızlık Denetimi"
     IDS_EVENTLOG_SUCCESS "Başarı"
     IDS_EVENTLOG_UNKNOWN_TYPE "Bilinmeyen Olay"
+    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
 END
 
 STRINGTABLE
index 501a705..82c61ca 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "&Захист", ID_LOG_SECURITY
         MENUITEM "&Система", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "&Захист", ID_LOG_SECURITY
         MENUITEM "&Система", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "В&ихід", IDM_EXIT
     END
     POPUP    "&Вигляд"
         MENUITEM "В&ихід", IDM_EXIT
     END
     POPUP    "&Вигляд"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "Аудит відмов"
     IDS_EVENTLOG_SUCCESS "Успіх"
     IDS_EVENTLOG_UNKNOWN_TYPE "Невідома подія"
     IDS_EVENTLOG_AUDIT_FAILURE "Аудит відмов"
     IDS_EVENTLOG_SUCCESS "Успіх"
     IDS_EVENTLOG_UNKNOWN_TYPE "Невідома подія"
+    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
 END
 
 STRINGTABLE
index aee2a57..524cf3d 100644 (file)
@@ -10,6 +10,10 @@ BEGIN
         MENUITEM "安全日志(&S)", ID_LOG_SECURITY
         MENUITEM "系统日志(&Y)", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
         MENUITEM "安全日志(&S)", ID_LOG_SECURITY
         MENUITEM "系统日志(&Y)", ID_LOG_SYSTEM
         MENUITEM SEPARATOR
+        MENUITEM "Save &Protocol...", ID_SAVE_PROTOCOL, GRAYED
+        MENUITEM SEPARATOR
+        MENUITEM "C&lear all Events", ID_CLEAR_EVENTS, GRAYED
+        MENUITEM SEPARATOR
         MENUITEM "退出(&X)", IDM_EXIT
     END
     POPUP "查看(&V)"
         MENUITEM "退出(&X)", IDM_EXIT
     END
     POPUP "查看(&V)"
@@ -97,6 +101,8 @@ BEGIN
     IDS_EVENTLOG_AUDIT_FAILURE "审核失败"
     IDS_EVENTLOG_SUCCESS "成功"
     IDS_EVENTLOG_UNKNOWN_TYPE "未知事件"
     IDS_EVENTLOG_AUDIT_FAILURE "审核失败"
     IDS_EVENTLOG_SUCCESS "成功"
     IDS_EVENTLOG_UNKNOWN_TYPE "未知事件"
+    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
 END
 
 STRINGTABLE
index 66e3032..b98a189 100644 (file)
@@ -46,6 +46,8 @@
 #define ID_VIEW_REFRESH    32780
 #define ID_REFRESH         32781
 #define IDM_REFRESH        32782
 #define ID_VIEW_REFRESH    32780
 #define ID_REFRESH         32781
 #define IDM_REFRESH        32782
+#define ID_CLEAR_EVENTS    32783
+#define ID_SAVE_PROTOCOL   32784
 
 /* String IDs */
 #define IDS_APP_TITLE                 103
 
 /* String IDs */
 #define IDS_APP_TITLE                 103
@@ -59,6 +61,8 @@
 #define IDS_EVENTLOG_AUDIT_FAILURE    255
 #define IDS_EVENTLOG_SUCCESS          256
 #define IDS_EVENTLOG_UNKNOWN_TYPE     257
 #define IDS_EVENTLOG_AUDIT_FAILURE    255
 #define IDS_EVENTLOG_SUCCESS          256
 #define IDS_EVENTLOG_UNKNOWN_TYPE     257
+#define IDS_CLEAREVENTS_MSG           258
+#define IDS_SAVE_FILTER               259
 
 #define IDS_COLUMNTYPE      300
 #define IDS_COLUMNDATE      301
 
 #define IDS_COLUMNTYPE      300
 #define IDS_COLUMNDATE      301