[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
This commit is contained in:
Hermès Bélusca-Maïto 2016-07-09 12:32:21 +00:00
parent 834f7edab0
commit 9a5faf7cc9
25 changed files with 108 additions and 73 deletions

View 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;
}

View 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"

View 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"

View 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"

View 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 "Αφάλμα"

View 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"

View 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"

View 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"

View 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 "שגיאה"

View 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"

View 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 "エラー"

View 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 "에러"

View 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"

View 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"

View 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"

View 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"

View 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 "Ошибка"

View 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"

View 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"

View 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"

View 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"

View 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 "Помилка"

View 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 "错误"

View 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 "錯誤"

View 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