[EVENTVWR] Implementation of Properties page functionnal code. (#2744)

Implementation of functional code for log properties page in order to allow user to :
- Make modification and have them taken into account when properties page is closed / apply is used;
- Set defaults (including correction of default max size);
- Delete content of log;
- Make "Apply" button functional based on user inputs;
- Correct default value during installation (duration, size).

- Improve InitPropertiesDlg() error;
- Fix SavePropertiesDlg(): When the event log key does not exist, it is not recreated by the event log viewer.
- GetDisplayNameFileAndID(): Show the error also when opening the event log key fails.

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
This commit is contained in:
Kyle Katarn 2020-05-17 18:54:39 +02:00 committed by GitHub
parent 591f7ff5d7
commit 8756cec0e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 155 additions and 15 deletions

View file

@ -2738,7 +2738,10 @@ GetDisplayNameFileAndID(IN LPCWSTR lpLogName,
cbKeyPath = (wcslen(EVENTLOG_BASE_KEY) + wcslen(lpLogName) + 1) * sizeof(WCHAR);
KeyPath = HeapAlloc(GetProcessHeap(), 0, cbKeyPath);
if (!KeyPath)
{
ShowWin32Error(ERROR_NOT_ENOUGH_MEMORY);
return FALSE;
}
StringCbCopyW(KeyPath, cbKeyPath, EVENTLOG_BASE_KEY);
StringCbCatW(KeyPath, cbKeyPath, lpLogName);
@ -2746,7 +2749,10 @@ GetDisplayNameFileAndID(IN LPCWSTR lpLogName,
Result = RegOpenKeyExW(hkMachine, KeyPath, 0, KEY_QUERY_VALUE, &hLogKey);
HeapFree(GetProcessHeap(), 0, KeyPath);
if (Result != ERROR_SUCCESS)
{
ShowWin32Error(Result);
return FALSE;
}
cbData = sizeof(szModuleName);
Result = RegQueryValueExW(hLogKey,
@ -3845,18 +3851,20 @@ InitPropertiesDlg(HWND hDlg, PEVENTLOG EventLog)
KeyPath = HeapAlloc(GetProcessHeap(), 0, cbKeyPath);
if (!KeyPath)
{
ShowWin32Error(ERROR_NOT_ENOUGH_MEMORY);
goto Quit;
}
StringCbCopyW(KeyPath, cbKeyPath, EVENTLOG_BASE_KEY);
StringCbCatW(KeyPath, cbKeyPath, lpLogName);
if (RegOpenKeyExW(hkMachine, KeyPath, 0, KEY_QUERY_VALUE, &hLogKey) != ERROR_SUCCESS)
Result = RegOpenKeyExW(hkMachine, KeyPath, 0, KEY_QUERY_VALUE, &hLogKey);
HeapFree(GetProcessHeap(), 0, KeyPath);
if (Result != ERROR_SUCCESS)
{
HeapFree(GetProcessHeap(), 0, KeyPath);
ShowWin32Error(Result);
goto Quit;
}
HeapFree(GetProcessHeap(), 0, KeyPath);
cbData = sizeof(dwMaxSize);
@ -3869,7 +3877,8 @@ InitPropertiesDlg(HWND hDlg, PEVENTLOG EventLog)
if ((Result != ERROR_SUCCESS) || (dwType != REG_DWORD))
{
// dwMaxSize = 512 * 1024; /* 512 kBytes */
dwMaxSize = 0;
/* Workstation: 512 KB; Server: 16384 KB */
dwMaxSize = 16384 * 1024;
}
/* Convert in KB */
dwMaxSize /= 1024;
@ -3883,19 +3892,17 @@ InitPropertiesDlg(HWND hDlg, PEVENTLOG EventLog)
&cbData);
if ((Result != ERROR_SUCCESS) || (dwType != REG_DWORD))
{
/* On Windows 2003 it is 604800 (secs) == 7 days */
/* By default, it is 604800 (secs) == 7 days. On Server, the retention is zeroed out. */
dwRetention = 0;
}
/* Convert in days, rounded up */ // ROUND_UP
// dwRetention = ROUND_UP(dwRetention, 24*3600) / (24*3600);
dwRetention = (dwRetention + 24*3600 - 1) / (24*3600);
/* Convert in days, rounded up */
if (dwRetention != INFINITE)
dwRetention = (dwRetention + 24*3600 - 1) / (24*3600);
RegCloseKey(hLogKey);
}
Quit:
SetDlgItemTextW(hDlg, IDC_DISPLAYNAME, lpLogName); // FIXME!
@ -3980,7 +3987,7 @@ Quit:
SendDlgItemMessageW(hDlg, IDC_UPDOWN_EVENTS_AGE, UDM_SETRANGE, 0, (LPARAM)MAKELONG(365, 1));
SetDlgItemInt(hDlg, IDC_EDIT_MAXLOGSIZE, dwMaxSize, FALSE);
SetDlgItemInt(hDlg, IDC_EDIT_EVENTS_AGE, dwRetention, FALSE);
SetDlgItemInt(hDlg, IDC_EDIT_EVENTS_AGE, (dwRetention == 0) ? 7 : dwRetention, FALSE);
if (dwRetention == 0)
{
@ -4007,11 +4014,71 @@ Quit:
}
}
static
VOID
SavePropertiesDlg(HWND hDlg, PEVENTLOG EventLog)
{
LPWSTR lpLogName = EventLog->LogName;
LONG Result;
DWORD dwMaxSize = 0, dwRetention = 0;
HKEY hLogKey;
WCHAR *KeyPath;
SIZE_T cbKeyPath;
if (!EventLog->Permanent)
return;
cbKeyPath = (wcslen(EVENTLOG_BASE_KEY) + wcslen(lpLogName) + 1) * sizeof(WCHAR);
KeyPath = HeapAlloc(GetProcessHeap(), 0, cbKeyPath);
if (!KeyPath)
{
ShowWin32Error(ERROR_NOT_ENOUGH_MEMORY);
return;
}
StringCbCopyW(KeyPath, cbKeyPath, EVENTLOG_BASE_KEY);
StringCbCatW(KeyPath, cbKeyPath, lpLogName);
Result = RegOpenKeyExW(hkMachine, KeyPath, 0, KEY_SET_VALUE, &hLogKey);
HeapFree(GetProcessHeap(), 0, KeyPath);
if (Result != ERROR_SUCCESS)
{
ShowWin32Error(Result);
return;
}
dwMaxSize = GetDlgItemInt(hDlg, IDC_EDIT_MAXLOGSIZE, NULL, FALSE) * 1024;
RegSetValueExW(hLogKey,
L"MaxSize",
0,
REG_DWORD,
(LPBYTE)&dwMaxSize,
sizeof(dwMaxSize));
if (IsDlgButtonChecked(hDlg, IDC_OVERWRITE_AS_NEEDED) == BST_CHECKED)
dwRetention = 0;
else if (IsDlgButtonChecked(hDlg, IDC_NO_OVERWRITE) == BST_CHECKED)
dwRetention = INFINITE;
else // if (IsDlgButtonChecked(hDlg, IDC_OVERWRITE_OLDER_THAN) == BST_CHECKED)
dwRetention = GetDlgItemInt(hDlg, IDC_EDIT_EVENTS_AGE, NULL, FALSE) * (24*3600);
RegSetValueExW(hLogKey,
L"Retention",
0,
REG_DWORD,
(LPBYTE)&dwRetention,
sizeof(dwRetention));
RegCloseKey(hLogKey);
}
/* Message handler for EventLog Properties dialog */
INT_PTR CALLBACK
EventLogPropProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
PEVENTLOG EventLog;
WCHAR szText[MAX_LOADSTRING];
EventLog = (PEVENTLOG)GetWindowLongPtrW(hDlg, DWLP_USER);
@ -4031,6 +4098,16 @@ EventLogPropProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
case WM_DESTROY:
return (INT_PTR)TRUE;
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code)
{
case PSN_APPLY:
PropSheet_UnChanged(GetParent(hDlg), hDlg);
SavePropertiesDlg(hDlg, EventLog);
return (INT_PTR)TRUE;
}
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
@ -4039,12 +4116,32 @@ EventLogPropProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
case ID_CLEARLOG:
{
PEVENTLOGFILTER EventLogFilter = GetSelectedFilter(NULL);
if (EventLogFilter && ClearEvents(EventLogFilter))
{
Refresh(EventLogFilter);
InitPropertiesDlg(hDlg, EventLog);
}
return (INT_PTR)TRUE;
}
case IDC_EDIT_EVENTS_AGE:
case IDC_EDIT_MAXLOGSIZE:
if (HIWORD(wParam) == EN_CHANGE)
{
PropSheet_Changed(GetParent(hDlg), hDlg);
}
return (INT_PTR)TRUE;
case IDC_OVERWRITE_AS_NEEDED:
{
CheckRadioButton(hDlg, IDC_OVERWRITE_AS_NEEDED, IDC_NO_OVERWRITE, IDC_OVERWRITE_AS_NEEDED);
EnableDlgItem(hDlg, IDC_EDIT_EVENTS_AGE, FALSE);
EnableDlgItem(hDlg, IDC_UPDOWN_EVENTS_AGE, FALSE);
break;
PropSheet_Changed(GetParent(hDlg), hDlg);
return (INT_PTR)TRUE;
}
case IDC_OVERWRITE_OLDER_THAN:
@ -4052,7 +4149,8 @@ EventLogPropProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
CheckRadioButton(hDlg, IDC_OVERWRITE_AS_NEEDED, IDC_NO_OVERWRITE, IDC_OVERWRITE_OLDER_THAN);
EnableDlgItem(hDlg, IDC_EDIT_EVENTS_AGE, TRUE);
EnableDlgItem(hDlg, IDC_UPDOWN_EVENTS_AGE, TRUE);
break;
PropSheet_Changed(GetParent(hDlg), hDlg);
return (INT_PTR)TRUE;
}
case IDC_NO_OVERWRITE:
@ -4060,7 +4158,25 @@ EventLogPropProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
CheckRadioButton(hDlg, IDC_OVERWRITE_AS_NEEDED, IDC_NO_OVERWRITE, IDC_NO_OVERWRITE);
EnableDlgItem(hDlg, IDC_EDIT_EVENTS_AGE, FALSE);
EnableDlgItem(hDlg, IDC_UPDOWN_EVENTS_AGE, FALSE);
break;
PropSheet_Changed(GetParent(hDlg), hDlg);
return (INT_PTR)TRUE;
}
case IDC_RESTOREDEFAULTS:
{
LoadStringW(hInst, IDS_RESTOREDEFAULTS, szText, _countof(szText));
if (MessageBoxW(hDlg, szText, szTitle, MB_YESNO | MB_ICONQUESTION) == IDYES)
{
CheckRadioButton(hDlg, IDC_OVERWRITE_AS_NEEDED, IDC_NO_OVERWRITE, IDC_OVERWRITE_AS_NEEDED);
/* Workstation: 512 KB; Server: 16384 KB */
SetDlgItemInt(hDlg, IDC_EDIT_MAXLOGSIZE, 5120, FALSE);
SetDlgItemInt(hDlg, IDC_EDIT_EVENTS_AGE, 7, FALSE);
EnableDlgItem(hDlg, IDC_EDIT_EVENTS_AGE, FALSE);
EnableDlgItem(hDlg, IDC_UPDOWN_EVENTS_AGE, FALSE);
PropSheet_Changed(GetParent(hDlg), hDlg);
}
return (INT_PTR)TRUE;
}
case IDHELP:
@ -4128,7 +4244,7 @@ EventLogProperties(HINSTANCE hInstance, HWND hWndParent, PEVENTLOGFILTER EventLo
psp[1].hInstance = hInstance;
psp[1].pszTemplate = MAKEINTRESOURCEW(IDD_GENERAL_PAGE);
psp[1].pfnDlgProc = GeneralPageWndProc;
psp[0].lParam = (LPARAM)EventLogFilter->EventLogs[0];
psp[1].lParam = (LPARAM)EventLogFilter->EventLogs[0];
#endif
/* Create the property sheet */

View file

@ -142,6 +142,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
IDS_EVENTSTRINGIDNOTFOUND "Не е намерено описанието на събитие ( %lu ) в източник ( %s ). Възможно е местият компютър да няма нужните сведения в регистъра или DLL файловет, нужни за показване на съобщения от отдалечен компютър.\n\nThe following information is part of the event:\n\n"
END

View file

@ -142,6 +142,7 @@ BEGIN
IDS_EVENTLOG_USER "Uživatelské protokoly"
IDS_SAVE_FILTER "Protokol událostí (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Chcete tento protokol před odstraněním uložit?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Ereignisprotokoll (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Möchten Sie dieses Protokoll vor dem Löschen speichern?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -150,6 +150,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "Registros de Usuario"
IDS_SAVE_FILTER "Registro de Eventos (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "¿Desea guardar este registro de eventos antes de borrarlo?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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\nLa siguiente información es parte del evento:\n\n"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "Journaux de l'utilisateur"
IDS_SAVE_FILTER "Journal d'événements (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Voulez-vous enregistrer ce journal d'événements avant de l'effacer ?"
IDS_RESTOREDEFAULTS "Voulez-vous vraiment réinitialiser tous les paramètres pour ce journal aux valeurs par défaut ?"
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"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
IDS_EVENTSTRINGIDNOTFOUND "イベント ID (%lu) (ソース %s 内) に関する説明が見つかりませんでした。 リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。\n\nThe following information is part of the event:\n\n"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
IDS_EVENTSTRINGIDNOTFOUND "( %s ) 의 이벤트ID ( %lu ) 에 대한 설명을 찾을 수 없습니다. 로컬 컴퓨터가 원격 컴퓨터의 메세지를 표시하는데 필요한 레지스트리나 DLL 파일을 가지지 않고 있을수 있습니다.\n\nThe following information is part of the event:\n\n"
END

View file

@ -142,6 +142,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -146,6 +146,7 @@ BEGIN
IDS_EVENTLOG_USER "Dzienniki użytkownika"
IDS_SAVE_FILTER "Dziennik zdarzeń (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Czy chcesz zapisać dziennik zdarzeń przed czyszczeniem?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -147,6 +147,7 @@ BEGIN
IDS_EVENTLOG_USER "Jurnale de utilizator"
IDS_SAVE_FILTER "Jurnal de evenimente (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Doriți păstrarea acestui jurnal de evenimente înainte de a-l închide?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
IDS_EVENTSTRINGIDNOTFOUND "Descrierea evenimentului cu ID-ul ( %lu ) în sursa ( %s ) nu a fost găsită. 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"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "Пользовательский журнал"
IDS_SAVE_FILTER "Журнал событий (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Вы хотите сохранить журнал событий перед очисткой?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
IDS_EVENTSTRINGIDNOTFOUND "Не найдено описание для события с кодом ( %lu ) в источнике ( %s ). Возможно, на локальном компьютере нет нужных данных в реестре или файлов DLL сообщений для отображения сообщений удаленного компьютера.\n\nСледующая информация часть события:\n\n"
END

View file

@ -147,6 +147,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -150,6 +150,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -150,6 +150,7 @@ BEGIN
IDS_EVENTLOG_USER "Kullanıcı Kayıtları"
IDS_SAVE_FILTER "Olay Kaydı (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Silmeden önce bu olay kaydını saklamak ister misiniz?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
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"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "Event Log (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "Do you want to save this event log before clearing it?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
IDS_EVENTSTRINGIDNOTFOUND "Опис для Ідентифікатора події ( %lu ) за джерелом ( %s ) не знайдено. Локальний комп'ютер може не мати необхідної інформації в реєстрі чи DLL файлів повідомлень для відображення повідомлень, що надходять від віддаленого комп'ютера.\n\nThe following information is part of the event:\n\n"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "用户日志"
IDS_SAVE_FILTER "事件日志 (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "你想要在清除之前保存此事件日志吗?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
IDS_EVENTSTRINGIDNOTFOUND "来源 ( %s ) 中的事件 ID ( %lu ) 的描述无法找到。本地计算机可能没有显示来自远程计算机消息所必需的注册表信息或消息 DLL 文件。\n\nThe following information is part of the event:\n\n"
END

View file

@ -144,6 +144,7 @@ BEGIN
IDS_EVENTLOG_USER "User Logs"
IDS_SAVE_FILTER "事件日誌 (*.evt)\0*.evt\0"
IDS_CLEAREVENTS_MSG "你想要在清除之前保存此事件日誌嗎?"
IDS_RESTOREDEFAULTS "Do you want to restore all settings for this log to their default values?"
IDS_EVENTSTRINGIDNOTFOUND "來源 ( %s ) 中的事件 ID ( %lu ) 的描述無法找到。 本地電腦可能沒有顯示來自遠端電腦消息所必需的註冊表資訊或消息 DLL 檔。\n\nThe following information is part of the event:\n\n"
END

View file

@ -94,6 +94,7 @@
#define IDS_SAVE_FILTER 109
#define IDS_CLEAREVENTS_MSG 110
#define IDS_EVENTSTRINGIDNOTFOUND 111
#define IDS_RESTOREDEFAULTS 112
#define IDS_USAGE 120
#define IDS_EVENTLOGFILE 121