Author: ekohl Date: Sat Nov 22 13:25:48 2008 New Revision: 37564
URL: http://svn.reactos.org/svn/reactos?rev=37564&view=rev Log: Replace TABs by Spaces. No code changes!
Modified: trunk/reactos/base/applications/mscutils/eventvwr/eventvwr.c trunk/reactos/base/applications/mscutils/eventvwr/resource.h
Modified: trunk/reactos/base/applications/mscutils/eventvwr/eventvwr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mscutils/... ============================================================================== --- trunk/reactos/base/applications/mscutils/eventvwr/eventvwr.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/mscutils/eventvwr/eventvwr.c [iso-8859-1] Sat Nov 22 13:25:48 2008 @@ -24,63 +24,65 @@ */
#include "eventvwr.h" -#include <windows.h> // Standard windows include file -#include <commctrl.h> // For ListView control APIs -#include <tchar.h> // For TCHAR and string functions. +#include <windows.h> // Standard windows include file +#include <commctrl.h> // For ListView control APIs +#include <tchar.h> // For TCHAR and string functions. #include <stdio.h> #include <time.h>
#if _MSC_VER - #pragma warning(disable: 4996) // 'strdup' was declared deprecated - #define _CRT_SECURE_NO_DEPRECATE // all deprecated 'unsafe string functions + #pragma warning(disable: 4996) // 'strdup' was declared deprecated + #define _CRT_SECURE_NO_DEPRECATE // all deprecated 'unsafe string functions #endif
-static const LPSTR EVENT_SOURCE_APPLICATION = "Application"; -static const LPSTR EVENT_SOURCE_SECURITY = "Security"; -static const LPSTR EVENT_SOURCE_SYSTEM = "System"; -static const TCHAR szWindowClass[] = _T("EVENTVWR"); // the main window class name +static const LPSTR EVENT_SOURCE_APPLICATION = "Application"; +static const LPSTR EVENT_SOURCE_SECURITY = "Security"; +static const LPSTR EVENT_SOURCE_SYSTEM = "System"; +static const TCHAR szWindowClass[] = _T("EVENTVWR"); // the main window class name
//MessageFile message buffer size -#define EVENT_MESSAGE_EVENTTEXT_BUFFER 1024*10 -#define EVENT_MESSAGE_FILE_BUFFER 1024*10 -#define EVENT_DLL_SEPARATOR ";" -#define EVENT_MESSAGE_FILE "EventMessageFile" -#define EVENT_CATEGORY_MESSAGE_FILE "CategoryMessageFile" -#define EVENT_PARAMETER_MESSAGE_FILE "ParameterMessageFile" +#define EVENT_MESSAGE_EVENTTEXT_BUFFER 1024*10 +#define EVENT_MESSAGE_FILE_BUFFER 1024*10 +#define EVENT_DLL_SEPARATOR ";" +#define EVENT_MESSAGE_FILE "EventMessageFile" +#define EVENT_CATEGORY_MESSAGE_FILE "CategoryMessageFile" +#define EVENT_PARAMETER_MESSAGE_FILE "ParameterMessageFile"
#define MAX_LOADSTRING 255
// Global Variables: -HINSTANCE hInst; // current instance -TCHAR szTitle[MAX_LOADSTRING]; // The title bar text +HINSTANCE hInst; // current instance +TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
// Globals HWND hwndMainWindow; // Main window HWND hwndListView; // ListView control -HWND hwndStatus; // Status bar - -LPTSTR lpSourceLogName = NULL; -LPTSTR lpComputerName = NULL; +HWND hwndStatus; // Status bar + +LPTSTR lpSourceLogName = NULL; +LPTSTR lpComputerName = NULL;
// Forward declarations of functions included in this code module: -ATOM MyRegisterClass(HINSTANCE hInstance); -BOOL InitInstance(HINSTANCE, int); -LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); -INT_PTR CALLBACK About (HWND, UINT, WPARAM, LPARAM); -INT_PTR CALLBACK EventDetails (HWND, UINT, WPARAM, LPARAM); +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK EventDetails(HWND, UINT, WPARAM, LPARAM); static INT_PTR CALLBACK StatusMessageWindowProc (HWND, UINT, WPARAM, LPARAM);
-int APIENTRY _tWinMain(HINSTANCE hInstance, - HINSTANCE hPrevInstance, - LPTSTR lpCmdLine, - int nCmdShow) -{ - MSG msg; - HACCEL hAccelTable; - INITCOMMONCONTROLSEX iccx; - - UNREFERENCED_PARAMETER(hPrevInstance); - UNREFERENCED_PARAMETER(lpCmdLine); + +int APIENTRY +_tWinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPTSTR lpCmdLine, + int nCmdShow) +{ + MSG msg; + HACCEL hAccelTable; + INITCOMMONCONTROLSEX iccx; + + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine);
// Whenever any of the common controls are used in your app, // you must call InitCommonControlsEx() to register the classes @@ -89,50 +91,55 @@ iccx.dwICC = ICC_LISTVIEW_CLASSES; InitCommonControlsEx(&iccx);
- // Initialize global strings - LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); - MyRegisterClass(hInstance); - - // Perform application initialization: - if (!InitInstance (hInstance, nCmdShow)) - { - return FALSE; - } - - hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_EVENTVWR)); - - // Main message loop: - while (GetMessage(&msg, NULL, 0, 0)) - { - if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - - return (int) msg.wParam; -} - -VOID EventTimeToSystemTime (DWORD EventTime, SYSTEMTIME *pSystemTime) -{ - SYSTEMTIME st1970 = { 1970, 1, 0, 1, 0, 0, 0, 0 }; - FILETIME ftLocal; - union { - FILETIME ft; - ULONGLONG ll; - } u1970, uUCT; - - uUCT.ft.dwHighDateTime = 0; - uUCT.ft.dwLowDateTime = EventTime; - SystemTimeToFileTime(&st1970, &u1970.ft); - uUCT.ll = uUCT.ll * 10000000 + u1970.ll; - FileTimeToLocalFileTime(&uUCT.ft, &ftLocal); - FileTimeToSystemTime(&ftLocal, pSystemTime); -} + // Initialize global strings + LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Perform application initialization: + if (!InitInstance(hInstance, nCmdShow)) + { + return FALSE; + } + + hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_EVENTVWR)); + + // Main message loop: + while (GetMessage(&msg, NULL, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int)msg.wParam; +} + + +VOID +EventTimeToSystemTime(DWORD EventTime, + SYSTEMTIME *pSystemTime) +{ + SYSTEMTIME st1970 = { 1970, 1, 0, 1, 0, 0, 0, 0 }; + FILETIME ftLocal; + union + { + FILETIME ft; + ULONGLONG ll; + } u1970, uUCT; + + uUCT.ft.dwHighDateTime = 0; + uUCT.ft.dwLowDateTime = EventTime; + SystemTimeToFileTime(&st1970, &u1970.ft); + uUCT.ll = uUCT.ll * 10000000 + u1970.ll; + FileTimeToLocalFileTime(&uUCT.ft, &ftLocal); + FileTimeToSystemTime(&ftLocal, pSystemTime); +} +
void -TrimNulls ( LPSTR s ) +TrimNulls(LPSTR s) { char *c;
@@ -145,253 +152,251 @@ } }
-BOOL GetEventMessageFileDLL( - IN LPCTSTR lpLogName, - IN LPCTSTR SourceName, - IN LPCTSTR EntryName, - OUT LPSTR ExpandedName) -{ - DWORD dwSize; - BYTE szModuleName[MAX_PATH]; - TCHAR szKeyName[MAX_PATH]; - HKEY hAppKey = NULL; - HKEY hSourceKey = NULL; - BOOL bReturn = FALSE; // Return + +BOOL +GetEventMessageFileDLL(IN LPCTSTR lpLogName, + IN LPCTSTR SourceName, + IN LPCTSTR EntryName, + OUT LPSTR ExpandedName) +{ + DWORD dwSize; + BYTE szModuleName[MAX_PATH]; + TCHAR szKeyName[MAX_PATH]; + HKEY hAppKey = NULL; + HKEY hSourceKey = NULL; + BOOL bReturn = FALSE; // Return
_tcscpy(szKeyName, TEXT("SYSTEM\CurrentControlSet\Services\EventLog")); _tcscat(szKeyName, _T("\")); _tcscat(szKeyName, lpLogName);
- if (RegOpenKeyEx( - HKEY_LOCAL_MACHINE, - szKeyName, - 0, - KEY_READ, - &hAppKey) == ERROR_SUCCESS) - { - if (RegOpenKeyEx( - hAppKey, - SourceName, - 0, - KEY_READ, - &hSourceKey) == ERROR_SUCCESS) - { - dwSize = MAX_PATH; - if (RegQueryValueEx( - hSourceKey, - EntryName, - NULL, - NULL, - (LPBYTE)szModuleName, - &dwSize) == ERROR_SUCCESS) - { - // Returns a string containing the requested substituted environment variable. - ExpandEnvironmentStrings ((LPCTSTR)szModuleName, ExpandedName, MAX_PATH); - - // Succesfull - bReturn = TRUE; - } - } - } - else - { - MessageBox (NULL , - _TEXT("Registry access failed!") , - _TEXT("Event Log") , - MB_OK | MB_ICONINFORMATION); - } - - if (hSourceKey != NULL) - RegCloseKey(hSourceKey); - - if (hAppKey != NULL) - RegCloseKey(hAppKey); - - return bReturn; -} - -BOOL GetEventCategory( - IN LPCTSTR KeyName, - IN LPCTSTR SourceName, - IN EVENTLOGRECORD *pevlr, - OUT LPTSTR CategoryName) -{ - HANDLE hLibrary = NULL; - TCHAR szMessageDLL[MAX_PATH]; - LPVOID lpMsgBuf = NULL; - - if(GetEventMessageFileDLL (KeyName, SourceName, EVENT_CATEGORY_MESSAGE_FILE , szMessageDLL)) - { - hLibrary = LoadLibraryEx( - szMessageDLL, - NULL, - DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE); - - if(hLibrary != NULL) - { - // Retrieve the message string. - if(FormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_ARGUMENT_ARRAY, - hLibrary, - pevlr->EventCategory, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR)&lpMsgBuf, - EVENT_MESSAGE_FILE_BUFFER, - NULL) != 0) - { - if (lpMsgBuf) - { - //Trim the string - TrimNulls ((LPSTR)lpMsgBuf); - - // Copy the category name - strcpy (CategoryName, (LPCTSTR)lpMsgBuf); - } - else - { - strcpy (CategoryName, (LPCTSTR)lpMsgBuf); - } - }else{ - strcpy (CategoryName, "None"); - } - - if(hLibrary != NULL) - FreeLibrary(hLibrary); - - // Free the buffer allocated by FormatMessage - if (lpMsgBuf) - LocalFree(lpMsgBuf); - - return TRUE; - } - } - - strcpy (CategoryName, "None"); - - return FALSE; -} - -BOOL GetEventMessage( - IN LPCTSTR KeyName, - IN LPCTSTR SourceName, - IN EVENTLOGRECORD *pevlr, - OUT LPTSTR EventText) -{ - DWORD i; - HANDLE hLibrary = NULL; - char SourceModuleName[1000]; - char ParameterModuleName[1000]; - LPTSTR lpMsgBuf = NULL; - TCHAR szStringIDNotFound[MAX_LOADSTRING]; - LPTSTR szDll; - LPTSTR szMessage; - LPTSTR *szArguments; - BOOL bDone = FALSE; - - /* TODO : GetEventMessageFileDLL can return a comma separated list of DLLs */ - if (GetEventMessageFileDLL (KeyName , SourceName, EVENT_MESSAGE_FILE , SourceModuleName)) - { - // Get the event message - szMessage = (LPTSTR)((LPBYTE)pevlr + pevlr->StringOffset); - - // Allocate space for parameters - szArguments = (LPTSTR*)malloc(sizeof(LPVOID)* pevlr->NumStrings); - if (!szArguments) - { - return FALSE; - } - - for (i = 0; i < pevlr->NumStrings ; i++) - { - if (strstr(szMessage , "%%")) - { - if (GetEventMessageFileDLL (KeyName , SourceName, EVENT_PARAMETER_MESSAGE_FILE , ParameterModuleName)) - { - //Not yet support for reading messages from parameter message DLL - } - - szArguments[i] = szMessage; - szMessage += strlen(szMessage) + 1; - } - else - { - szArguments[i] = szMessage; - szMessage += strlen(szMessage) + 1; - } - } - - szDll = strtok(SourceModuleName, EVENT_DLL_SEPARATOR); - while ((szDll != NULL) && (!bDone)) - { - hLibrary = LoadLibraryEx( - szDll, - NULL, - DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE); - - if (hLibrary == NULL) - { - // The DLL could not be loaded try the next one (if any) - szDll = strtok (NULL, EVENT_DLL_SEPARATOR); - } - else - { - // Retrieve the message string. - if(FormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_HMODULE | - FORMAT_MESSAGE_ARGUMENT_ARRAY, - hLibrary, - pevlr->EventID, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR)&lpMsgBuf, - 0, - szArguments) == 0) - { - // We haven't found the string , get next DLL (if any) - szDll = strtok (NULL, EVENT_DLL_SEPARATOR); - } - else - { - if (lpMsgBuf) - { - // The ID was found and the message was formated - bDone = TRUE; - - //Trim the string - TrimNulls ((LPSTR)lpMsgBuf); - - // Copy the event text - strcpy (EventText ,lpMsgBuf); - } - } - - FreeLibrary (hLibrary); - } - } - - if (!bDone) - { - LoadString(hInst, IDC_EVENTSTRINGIDNOTFOUND, szStringIDNotFound, MAX_LOADSTRING); - wsprintf (EventText, szStringIDNotFound , (DWORD)(pevlr->EventID & 0xFFFF) , SourceName ); - } - - free(szArguments); - - // No more dlls to try , return result - return bDone; - } - - LoadString(hInst, IDC_EVENTSTRINGIDNOTFOUND, szStringIDNotFound, MAX_LOADSTRING); - wsprintf (EventText, szStringIDNotFound , (DWORD)(pevlr->EventID & 0xFFFF) , SourceName ); - - return FALSE; -} + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, + szKeyName, + 0, + KEY_READ, + &hAppKey) == ERROR_SUCCESS) + { + if (RegOpenKeyEx(hAppKey, + SourceName, + 0, + KEY_READ, + &hSourceKey) == ERROR_SUCCESS) + { + dwSize = MAX_PATH; + if (RegQueryValueEx(hSourceKey, + EntryName, + NULL, + NULL, + (LPBYTE)szModuleName, + &dwSize) == ERROR_SUCCESS) + { + // Returns a string containing the requested substituted environment variable. + ExpandEnvironmentStrings ((LPCTSTR)szModuleName, ExpandedName, MAX_PATH); + + // Succesfull + bReturn = TRUE; + } + } + } + else + { + MessageBox(NULL, + _TEXT("Registry access failed!"), + _TEXT("Event Log"), + MB_OK | MB_ICONINFORMATION); + } + + if (hSourceKey != NULL) + RegCloseKey(hSourceKey); + + if (hAppKey != NULL) + RegCloseKey(hAppKey); + + return bReturn; +} + + +BOOL +GetEventCategory(IN LPCTSTR KeyName, + IN LPCTSTR SourceName, + IN EVENTLOGRECORD *pevlr, + OUT LPTSTR CategoryName) +{ + HANDLE hLibrary = NULL; + TCHAR szMessageDLL[MAX_PATH]; + LPVOID lpMsgBuf = NULL; + + if (GetEventMessageFileDLL (KeyName, SourceName, EVENT_CATEGORY_MESSAGE_FILE , szMessageDLL)) + { + hLibrary = LoadLibraryEx(szMessageDLL, + NULL, + DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE); + if (hLibrary != NULL) + { + // Retrieve the message string. + if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_ARGUMENT_ARRAY, + hLibrary, + pevlr->EventCategory, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR)&lpMsgBuf, + EVENT_MESSAGE_FILE_BUFFER, + NULL) != 0) + { + if (lpMsgBuf) + { + // Trim the string + TrimNulls((LPSTR)lpMsgBuf); + + // Copy the category name + strcpy(CategoryName, (LPCTSTR)lpMsgBuf); + } + else + { + strcpy(CategoryName, (LPCTSTR)lpMsgBuf); + } + } + else + { + strcpy(CategoryName, "None"); + } + + if (hLibrary != NULL) + FreeLibrary(hLibrary); + + // Free the buffer allocated by FormatMessage + if (lpMsgBuf) + LocalFree(lpMsgBuf); + + return TRUE; + } + } + + strcpy(CategoryName, "None"); + + return FALSE; +} + + +BOOL +GetEventMessage(IN LPCTSTR KeyName, + IN LPCTSTR SourceName, + IN EVENTLOGRECORD *pevlr, + OUT LPTSTR EventText) +{ + DWORD i; + HANDLE hLibrary = NULL; + char SourceModuleName[1000]; + char ParameterModuleName[1000]; + LPTSTR lpMsgBuf = NULL; + TCHAR szStringIDNotFound[MAX_LOADSTRING]; + LPTSTR szDll; + LPTSTR szMessage; + LPTSTR *szArguments; + BOOL bDone = FALSE; + + /* TODO : GetEventMessageFileDLL can return a comma separated list of DLLs */ + if (GetEventMessageFileDLL (KeyName , SourceName, EVENT_MESSAGE_FILE , SourceModuleName)) + { + // Get the event message + szMessage = (LPTSTR)((LPBYTE)pevlr + pevlr->StringOffset); + + // Allocate space for parameters + szArguments = (LPTSTR*)malloc(sizeof(LPVOID)* pevlr->NumStrings); + if (!szArguments) + { + return FALSE; + } + + for (i = 0; i < pevlr->NumStrings ; i++) + { + if (strstr(szMessage , "%%")) + { + if (GetEventMessageFileDLL(KeyName , SourceName, EVENT_PARAMETER_MESSAGE_FILE, ParameterModuleName)) + { + // Not yet support for reading messages from parameter message DLL + } + + szArguments[i] = szMessage; + szMessage += strlen(szMessage) + 1; + } + else + { + szArguments[i] = szMessage; + szMessage += strlen(szMessage) + 1; + } + } + + szDll = strtok(SourceModuleName, EVENT_DLL_SEPARATOR); + while ((szDll != NULL) && (!bDone)) + { + hLibrary = LoadLibraryEx(szDll, + NULL, + DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE); + if (hLibrary == NULL) + { + // The DLL could not be loaded try the next one (if any) + szDll = strtok(NULL, EVENT_DLL_SEPARATOR); + } + else + { + // Retrieve the message string. + if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_HMODULE | + FORMAT_MESSAGE_ARGUMENT_ARRAY, + hLibrary, + pevlr->EventID, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR)&lpMsgBuf, + 0, + szArguments) == 0) + { + // We haven't found the string , get next DLL (if any) + szDll = strtok (NULL, EVENT_DLL_SEPARATOR); + } + else + { + if (lpMsgBuf) + { + // The ID was found and the message was formated + bDone = TRUE; + + // Trim the string + TrimNulls((LPSTR)lpMsgBuf); + + // Copy the event text + strcpy(EventText ,lpMsgBuf); + } + } + + FreeLibrary(hLibrary); + } + } + + if (!bDone) + { + LoadString(hInst, IDC_EVENTSTRINGIDNOTFOUND, szStringIDNotFound, MAX_LOADSTRING); + wsprintf(EventText, szStringIDNotFound, (DWORD)(pevlr->EventID & 0xFFFF), SourceName); + } + + free(szArguments); + + // No more dlls to try , return result + return bDone; + } + + LoadString(hInst, IDC_EVENTSTRINGIDNOTFOUND, szStringIDNotFound, MAX_LOADSTRING); + wsprintf(EventText, szStringIDNotFound, (DWORD)(pevlr->EventID & 0xFFFF), SourceName); + + return FALSE; +} +
VOID -GetEventType (WORD dwEventType, OUT LPSTR eventTypeText) -{ - switch(dwEventType) +GetEventType(IN WORD dwEventType, + OUT LPSTR eventTypeText) +{ + switch (dwEventType) { case EVENTLOG_ERROR_TYPE: LoadString(hInst, IDC_EVENTLOG_ERROR_TYPE, eventTypeText, MAX_LOADSTRING); @@ -418,54 +423,53 @@ }
BOOL -GetEventUserName (EVENTLOGRECORD *pelr, OUT LPSTR pszUser) +GetEventUserName(EVENTLOGRECORD *pelr, OUT LPSTR pszUser) { PSID lpSid; - char szName[1024]; - char szDomain[1024]; + char szName[1024]; + char szDomain[1024]; SID_NAME_USE peUse; DWORD cbName = 1024; DWORD cbDomain = 1024;
// Point to the SID. - lpSid = (PSID)((LPBYTE) pelr + pelr->UserSidOffset); - - // User SID - if(pelr->UserSidLength > 0) - { - if (LookupAccountSid( - NULL, - lpSid, - szName, - &cbName, - szDomain, - &cbDomain, - &peUse)) - { - strcpy (pszUser , szName); - return TRUE; - } - } + lpSid = (PSID)((LPBYTE)pelr + pelr->UserSidOffset); + + // User SID + if (pelr->UserSidLength > 0) + { + if (LookupAccountSid(NULL, + lpSid, + szName, + &cbName, + szDomain, + &cbDomain, + &peUse)) + { + strcpy(pszUser, szName); + return TRUE; + } + }
return FALSE; }
+ static DWORD WINAPI -ShowStatusMessageThread( - IN LPVOID lpParameter) +ShowStatusMessageThread(IN LPVOID lpParameter) { HWND *phWnd = (HWND *)lpParameter; HWND hWnd; MSG Msg;
- hWnd = CreateDialogParam( - hInst, - MAKEINTRESOURCE(IDD_PROGRESSBOX), - GetDesktopWindow(), - StatusMessageWindowProc, - (LPARAM)NULL); + hWnd = CreateDialogParam(hInst, + MAKEINTRESOURCE(IDD_PROGRESSBOX), + GetDesktopWindow(), + StatusMessageWindowProc, + (LPARAM)NULL); if (!hWnd) return 0; + *phWnd = hWnd;
ShowWindow(hWnd, SW_SHOW); @@ -480,59 +484,58 @@ return 0; }
-VOID QueryEventMessages ( - LPTSTR lpMachineName , - LPTSTR lpLogName) -{ - HWND hwndDlg; + +VOID +QueryEventMessages(LPTSTR lpMachineName, + LPTSTR lpLogName) +{ + HWND hwndDlg; HANDLE hEventLog; EVENTLOGRECORD *pevlr; BYTE bBuffer[MAX_PATH]; - DWORD dwRead, dwNeeded, dwThisRecord , dwTotalRecords , dwCurrentRecord = 1 , dwRecordsToRead = 0 , dwFlags; + DWORD dwRead, dwNeeded, dwThisRecord, dwTotalRecords, dwCurrentRecord = 1, dwRecordsToRead = 0, dwFlags; LPSTR lpSourceName; - LPSTR lpComputerName; - LPSTR lpEventStr; - LPSTR lpData; - BOOL bResult = TRUE; // Read succeeded. - - char szWindowTitle[MAX_PATH]; - char szStatusText[MAX_PATH]; - char szLocalDate[MAX_PATH]; - char szLocalTime[MAX_PATH]; - char szEventID[MAX_PATH]; - char szEventTypeText[MAX_PATH]; - char szCategoryID[MAX_PATH]; - char szUsername[MAX_PATH]; - char szEventText[EVENT_MESSAGE_FILE_BUFFER]; - char szCategory[MAX_PATH]; - - SYSTEMTIME time; - LVITEM lviEventItem; - - dwFlags = EVENTLOG_FORWARDS_READ | EVENTLOG_SEQUENTIAL_READ; - - lpSourceLogName = lpLogName; - lpComputerName = lpMachineName; + LPSTR lpComputerName; + LPSTR lpEventStr; + LPSTR lpData; + BOOL bResult = TRUE; // Read succeeded. + + char szWindowTitle[MAX_PATH]; + char szStatusText[MAX_PATH]; + char szLocalDate[MAX_PATH]; + char szLocalTime[MAX_PATH]; + char szEventID[MAX_PATH]; + char szEventTypeText[MAX_PATH]; + char szCategoryID[MAX_PATH]; + char szUsername[MAX_PATH]; + char szEventText[EVENT_MESSAGE_FILE_BUFFER]; + char szCategory[MAX_PATH]; + + SYSTEMTIME time; + LVITEM lviEventItem; + + dwFlags = EVENTLOG_FORWARDS_READ | EVENTLOG_SEQUENTIAL_READ; + + lpSourceLogName = lpLogName; + lpComputerName = lpMachineName;
// Open the event log. - hEventLog = OpenEventLog( - lpMachineName, - lpLogName); - + hEventLog = OpenEventLog(lpMachineName, + lpLogName); if (hEventLog == NULL) { - MessageBox (NULL , - _TEXT("Could not open the event log.") , - _TEXT("Event Log") , - MB_OK | MB_ICONINFORMATION); + MessageBox(NULL, + _TEXT("Could not open the event log."), + _TEXT("Event Log"), + MB_OK | MB_ICONINFORMATION); return; }
- //Disable listview redraw - SendMessage(hwndListView, WM_SETREDRAW, FALSE, 0); - - // Clear the list view - (void)ListView_DeleteAllItems (hwndListView); + // Disable listview redraw + SendMessage(hwndListView, WM_SETREDRAW, FALSE, 0); + + // Clear the list view + (void)ListView_DeleteAllItems (hwndListView);
// Initialize the event record buffer. pevlr = (EVENTLOGRECORD *)&bBuffer; @@ -540,156 +543,158 @@ // Get the record number of the oldest event log record. GetOldestEventLogRecord(hEventLog, &dwThisRecord);
- // Get the total number of event log records. - GetNumberOfEventLogRecords (hEventLog , &dwTotalRecords); - - //If we have at least 1000 records show the waiting dialog - if (dwTotalRecords > 1000) - { - CreateThread( - NULL, - 0, - ShowStatusMessageThread, - (LPVOID)&hwndDlg, - 0, - NULL); - } + // Get the total number of event log records. + GetNumberOfEventLogRecords (hEventLog , &dwTotalRecords); + + //If we have at least 1000 records show the waiting dialog + if (dwTotalRecords > 1000) + { + CreateThread(NULL, + 0, + ShowStatusMessageThread, + (LPVOID)&hwndDlg, + 0, + NULL); + }
while (dwCurrentRecord < dwTotalRecords) { - pevlr = (EVENTLOGRECORD*)malloc(MAX_PATH); - - bResult = ReadEventLog( - hEventLog, // Event log handle - dwFlags, // Sequential read - 0, // Ignored for sequential read - pevlr, // Pointer to buffer - MAX_PATH, // Size of buffer - &dwRead, // Number of bytes read - &dwNeeded); // Bytes in the next record - - if((!bResult) && (GetLastError () == ERROR_INSUFFICIENT_BUFFER)) - { - pevlr = (EVENTLOGRECORD*)malloc (dwNeeded); - - ReadEventLog( - hEventLog, // event log handle - dwFlags, // read flags - 0, // offset; default is 0 - pevlr, // pointer to buffer - dwNeeded, // size of buffer - &dwRead, // number of bytes read - &dwNeeded); // bytes in next record - } + pevlr = (EVENTLOGRECORD*)malloc(MAX_PATH); + + bResult = ReadEventLog(hEventLog, // Event log handle + dwFlags, // Sequential read + 0, // Ignored for sequential read + pevlr, // Pointer to buffer + MAX_PATH, // Size of buffer + &dwRead, // Number of bytes read + &dwNeeded); // Bytes in the next record + if((!bResult) && (GetLastError () == ERROR_INSUFFICIENT_BUFFER)) + { + pevlr = (EVENTLOGRECORD*)malloc (dwNeeded); + + ReadEventLog(hEventLog, // event log handle + dwFlags, // read flags + 0, // offset; default is 0 + pevlr, // pointer to buffer + dwNeeded, // size of buffer + &dwRead, // number of bytes read + &dwNeeded); // bytes in next record + }
while (dwRead > 0) { - strcpy (szUsername , "N/A"); - strcpy (szEventText , "N/A"); - strcpy (szCategory , "None"); + strcpy(szUsername , "N/A"); + strcpy(szEventText , "N/A"); + strcpy(szCategory , "None");
// Get the event source name. - lpSourceName = (LPSTR) ((LPBYTE) pevlr + sizeof(EVENTLOGRECORD)); - - // Get the computer name - lpComputerName = (LPSTR) ((LPBYTE) pevlr + sizeof(EVENTLOGRECORD) + lstrlen(lpSourceName) + 1); - - // This ist the data section of the current event - lpData = (LPSTR) ((LPBYTE)pevlr + pevlr->DataOffset); - - // This is the text of the current event - lpEventStr = (LPSTR) ((LPBYTE) pevlr + pevlr->StringOffset); - - // Compute the event type - EventTimeToSystemTime(pevlr->TimeWritten, &time); - - // Get the username that generated the event - GetEventUserName (pevlr , szUsername); - - GetDateFormat( LOCALE_USER_DEFAULT, DATE_SHORTDATE, &time, NULL, szLocalDate, MAX_PATH ); - GetTimeFormat( LOCALE_USER_DEFAULT, TIME_NOSECONDS, &time, NULL, szLocalTime, MAX_PATH ); - - GetEventType (pevlr->EventType , szEventTypeText); - GetEventCategory (lpLogName , lpSourceName , pevlr , szCategory); - - wsprintf (szEventID, "%u", (DWORD)(pevlr->EventID & 0xFFFF)); - wsprintf (szCategoryID, "%u", (DWORD)(pevlr->EventCategory)); - - lviEventItem.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM; - lviEventItem.iItem = 0; - lviEventItem.iSubItem = 0; - lviEventItem.lParam = (LPARAM)pevlr; - lviEventItem.pszText = szEventTypeText; - - switch(pevlr->EventType) - { - case EVENTLOG_ERROR_TYPE: - lviEventItem.iImage = 2; - break; - case EVENTLOG_AUDIT_FAILURE: - lviEventItem.iImage = 2; - break; - case EVENTLOG_WARNING_TYPE: - lviEventItem.iImage = 1; - break; - case EVENTLOG_INFORMATION_TYPE: - lviEventItem.iImage = 0; - break; - case EVENTLOG_AUDIT_SUCCESS: - lviEventItem.iImage = 0; - break; - case EVENTLOG_SUCCESS: - lviEventItem.iImage = 0; - break; - } - - lviEventItem.iItem = ListView_InsertItem(hwndListView, &lviEventItem); - - ListView_SetItemText(hwndListView, lviEventItem.iItem, 1, szLocalDate); - ListView_SetItemText(hwndListView, lviEventItem.iItem, 2, szLocalTime); - ListView_SetItemText(hwndListView, lviEventItem.iItem, 3, lpSourceName); - ListView_SetItemText(hwndListView, lviEventItem.iItem, 4, szCategory); - ListView_SetItemText(hwndListView, lviEventItem.iItem, 5, szEventID); - ListView_SetItemText(hwndListView, lviEventItem.iItem, 6, szUsername); //User - ListView_SetItemText(hwndListView, lviEventItem.iItem, 7, lpComputerName); //Computer - ListView_SetItemText(hwndListView, lviEventItem.iItem, 8, lpData); //Event Text + lpSourceName = (LPSTR)((LPBYTE)pevlr + sizeof(EVENTLOGRECORD)); + + // Get the computer name + lpComputerName = (LPSTR)((LPBYTE)pevlr + sizeof(EVENTLOGRECORD) + lstrlen(lpSourceName) + 1); + + // This ist the data section of the current event + lpData = (LPSTR)((LPBYTE)pevlr + pevlr->DataOffset); + + // This is the text of the current event + lpEventStr = (LPSTR)((LPBYTE) pevlr + pevlr->StringOffset); + + // Compute the event type + EventTimeToSystemTime(pevlr->TimeWritten, &time); + + // Get the username that generated the event + GetEventUserName(pevlr, szUsername); + + GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &time, NULL, szLocalDate, MAX_PATH); + GetTimeFormat(LOCALE_USER_DEFAULT, TIME_NOSECONDS, &time, NULL, szLocalTime, MAX_PATH); + + GetEventType(pevlr->EventType, szEventTypeText); + GetEventCategory(lpLogName, lpSourceName, pevlr, szCategory); + + wsprintf(szEventID, "%u", (DWORD)(pevlr->EventID & 0xFFFF)); + wsprintf(szCategoryID, "%u", (DWORD)(pevlr->EventCategory)); + + lviEventItem.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM; + lviEventItem.iItem = 0; + lviEventItem.iSubItem = 0; + lviEventItem.lParam = (LPARAM)pevlr; + lviEventItem.pszText = szEventTypeText; + + switch (pevlr->EventType) + { + case EVENTLOG_ERROR_TYPE: + lviEventItem.iImage = 2; + break; + + case EVENTLOG_AUDIT_FAILURE: + lviEventItem.iImage = 2; + break; + + case EVENTLOG_WARNING_TYPE: + lviEventItem.iImage = 1; + break; + + case EVENTLOG_INFORMATION_TYPE: + lviEventItem.iImage = 0; + break; + + case EVENTLOG_AUDIT_SUCCESS: + lviEventItem.iImage = 0; + break; + + case EVENTLOG_SUCCESS: + lviEventItem.iImage = 0; + break; + } + + lviEventItem.iItem = ListView_InsertItem(hwndListView, &lviEventItem); + + ListView_SetItemText(hwndListView, lviEventItem.iItem, 1, szLocalDate); + ListView_SetItemText(hwndListView, lviEventItem.iItem, 2, szLocalTime); + ListView_SetItemText(hwndListView, lviEventItem.iItem, 3, lpSourceName); + ListView_SetItemText(hwndListView, lviEventItem.iItem, 4, szCategory); + ListView_SetItemText(hwndListView, lviEventItem.iItem, 5, szEventID); + ListView_SetItemText(hwndListView, lviEventItem.iItem, 6, szUsername); //User + ListView_SetItemText(hwndListView, lviEventItem.iItem, 7, lpComputerName); //Computer + ListView_SetItemText(hwndListView, lviEventItem.iItem, 8, lpData); //Event Text
dwRead -= pevlr->Length; - pevlr = (EVENTLOGRECORD *) ((LPBYTE) pevlr + pevlr->Length); + pevlr = (EVENTLOGRECORD *)((LPBYTE) pevlr + pevlr->Length); }
- dwRecordsToRead--; - dwCurrentRecord++; - - pevlr = (EVENTLOGRECORD *) &bBuffer; - } - - //All events loaded - EndDialog(hwndDlg, 0); - - wsprintf (szWindowTitle, "%s - %s Log on \\%s", szTitle , lpLogName , lpComputerName); - wsprintf (szStatusText, "%s has %d event(s)", lpLogName , dwTotalRecords); - - //Update the status bar - SendMessage (hwndStatus, SB_SETTEXT, (WPARAM)0, (LPARAM)szStatusText); - - //Set the window title - SetWindowText ( hwndMainWindow , szWindowTitle); - - //Resume list view redraw - SendMessage(hwndListView, WM_SETREDRAW, TRUE, 0); + dwRecordsToRead--; + dwCurrentRecord++; + + pevlr = (EVENTLOGRECORD *)&bBuffer; + } + + // All events loaded + EndDialog(hwndDlg, 0); + + wsprintf(szWindowTitle, "%s - %s Log on \\%s", szTitle , lpLogName , lpComputerName); + wsprintf(szStatusText, "%s has %d event(s)", lpLogName , dwTotalRecords); + + // Update the status bar + SendMessage(hwndStatus, SB_SETTEXT, (WPARAM)0, (LPARAM)szStatusText); + + // Set the window title + SetWindowText(hwndMainWindow, szWindowTitle); + + // Resume list view redraw + SendMessage(hwndListView, WM_SETREDRAW, TRUE, 0);
// Close the event log. CloseEventLog(hEventLog); }
+ VOID -Refresh (VOID) -{ - QueryEventMessages( - lpComputerName , - lpSourceLogName); -} +Refresh(VOID) +{ + QueryEventMessages(lpComputerName, + lpSourceLogName); +} +
// // FUNCTION: MyRegisterClass() @@ -704,26 +709,28 @@ // so that the application will get 'well formed' small icons associated // with it. // -ATOM MyRegisterClass(HINSTANCE hInstance) -{ - WNDCLASSEX wcex; - - wcex.cbSize = sizeof(WNDCLASSEX); - - wcex.style = CS_HREDRAW | CS_VREDRAW; - wcex.lpfnWndProc = WndProc; - wcex.cbClsExtra = 0; - wcex.cbWndExtra = 0; - wcex.hInstance = hInstance; - wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_EVENTVWR)); - wcex.hCursor = LoadCursor(NULL, IDC_ARROW); - wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); - wcex.lpszMenuName = MAKEINTRESOURCE(IDC_EVENTVWR); - wcex.lpszClassName = szWindowClass; - wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); - - return RegisterClassEx(&wcex); -} +ATOM +MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASSEX wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_EVENTVWR)); + wcex.hCursor = LoadCursor(NULL, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wcex.lpszMenuName = MAKEINTRESOURCE(IDC_EVENTVWR); + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); + + return RegisterClassEx(&wcex); +} +
// // FUNCTION: InitInstance(HINSTANCE, int) @@ -735,122 +742,119 @@ // In this function, we save the instance handle in a global variable and // create and display the main program window. // -BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) -{ - HIMAGELIST hSmall; - LVCOLUMN lvc = {0}; - - hInst = hInstance; // Store instance handle in our global variable - - hwndMainWindow = CreateWindow( - szWindowClass, - szTitle, - WS_OVERLAPPEDWINDOW, - CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, - NULL, - NULL, - hInstance, - NULL); - - if (!hwndMainWindow) - { - return FALSE; - } - - hwndStatus = CreateWindowEx( - 0, // no extended styles - STATUSCLASSNAME, // status bar - "Done.", // no text - WS_CHILD | WS_BORDER | WS_VISIBLE, // styles - 0, 0, 0, 0, // x, y, cx, cy - hwndMainWindow, // parent window - (HMENU)100, // window ID - hInstance, // instance - NULL); // window data +BOOL +InitInstance(HINSTANCE hInstance, + int nCmdShow) +{ + HIMAGELIST hSmall; + LVCOLUMN lvc = {0}; + + hInst = hInstance; // Store instance handle in our global variable + + hwndMainWindow = CreateWindow(szWindowClass, + szTitle, + WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, + NULL, + NULL, + hInstance, + NULL); + if (!hwndMainWindow) + { + return FALSE; + } + + hwndStatus = CreateWindowEx(0, // no extended styles + STATUSCLASSNAME, // status bar + "Done.", // no text + WS_CHILD | WS_BORDER | WS_VISIBLE, // styles + 0, 0, 0, 0, // x, y, cx, cy + hwndMainWindow, // parent window + (HMENU)100, // window ID + hInstance, // instance + NULL); // window data
// Create our listview child window. Note that I use WS_EX_CLIENTEDGE // and WS_BORDER to create the normal "sunken" look. Also note that // LVS_EX_ styles cannot be set in CreateWindowEx(). - hwndListView = CreateWindowEx( - WS_EX_CLIENTEDGE, - WC_LISTVIEW, - _T(""), - LVS_SHOWSELALWAYS | WS_CHILD | WS_VISIBLE | LVS_REPORT, - 0, - 0, - 243, - 200, - hwndMainWindow, - NULL, - hInstance, - NULL); + hwndListView = CreateWindowEx(WS_EX_CLIENTEDGE, + WC_LISTVIEW, + _T(""), + LVS_SHOWSELALWAYS | WS_CHILD | WS_VISIBLE | LVS_REPORT, + 0, + 0, + 243, + 200, + hwndMainWindow, + NULL, + hInstance, + NULL);
// After the ListView is created, we can add extended list view styles. (void)ListView_SetExtendedListViewStyle (hwndListView, LVS_EX_FULLROWSELECT);
- // Create the ImageList - hSmall = ImageList_Create( - GetSystemMetrics(SM_CXSMICON), - GetSystemMetrics(SM_CYSMICON), - ILC_MASK, - 1, - 1); - - // Add event type icons to ImageList - ImageList_AddIcon (hSmall, LoadIcon(hInstance, MAKEINTRESOURCE(IDI_INFORMATIONICON))); - ImageList_AddIcon (hSmall, LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WARNINGICON))); - ImageList_AddIcon (hSmall, LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ERRORICON))); - - // Assign ImageList to List View - (void)ListView_SetImageList (hwndListView, hSmall, LVSIL_SMALL); + // Create the ImageList + hSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON), + GetSystemMetrics(SM_CYSMICON), + ILC_MASK, + 1, + 1); + + // Add event type icons to ImageList + ImageList_AddIcon (hSmall, LoadIcon(hInstance, MAKEINTRESOURCE(IDI_INFORMATIONICON))); + ImageList_AddIcon (hSmall, LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WARNINGICON))); + ImageList_AddIcon (hSmall, LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ERRORICON))); + + // Assign ImageList to List View + (void)ListView_SetImageList (hwndListView, hSmall, LVSIL_SMALL);
// Now set up the listview with its columns. lvc.mask = LVCF_TEXT | LVCF_WIDTH; - lvc.cx = 90; - lvc.pszText = _T("Type"); + lvc.cx = 90; + lvc.pszText = _T("Type"); (void)ListView_InsertColumn(hwndListView, 0, &lvc);
- lvc.cx = 70; - lvc.pszText = _T("Date"); + lvc.cx = 70; + lvc.pszText = _T("Date"); (void)ListView_InsertColumn(hwndListView, 1, &lvc);
- lvc.cx = 70; + lvc.cx = 70; lvc.pszText = _T("Time"); (void)ListView_InsertColumn(hwndListView, 2, &lvc);
- lvc.cx = 150; - lvc.pszText = _T("Source"); + lvc.cx = 150; + lvc.pszText = _T("Source"); (void)ListView_InsertColumn(hwndListView, 3, &lvc);
- lvc.cx = 100; - lvc.pszText = _T("Category"); + lvc.cx = 100; + lvc.pszText = _T("Category"); (void)ListView_InsertColumn(hwndListView, 4, &lvc);
- lvc.cx = 60; - lvc.pszText = _T("Event"); + lvc.cx = 60; + lvc.pszText = _T("Event"); (void)ListView_InsertColumn(hwndListView, 5, &lvc);
- lvc.cx = 120; - lvc.pszText = _T("User"); + lvc.cx = 120; + lvc.pszText = _T("User"); (void)ListView_InsertColumn(hwndListView, 6, &lvc);
- lvc.cx = 100; - lvc.pszText = _T("Computer"); + lvc.cx = 100; + lvc.pszText = _T("Computer"); (void)ListView_InsertColumn(hwndListView, 7, &lvc);
- lvc.cx = 0; - lvc.pszText = _T("Event Data"); + lvc.cx = 0; + lvc.pszText = _T("Event Data"); (void)ListView_InsertColumn(hwndListView, 8, &lvc);
- ShowWindow(hwndMainWindow, nCmdShow); - UpdateWindow(hwndMainWindow); - - QueryEventMessages ( - lpComputerName, // Use the local computer. - EVENT_SOURCE_APPLICATION); // The event log category - - return TRUE; -} + ShowWindow(hwndMainWindow, nCmdShow); + UpdateWindow(hwndMainWindow); + + QueryEventMessages(lpComputerName, // Use the local computer. + EVENT_SOURCE_APPLICATION); // The event log category + + return TRUE; +} +
// // FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM) @@ -862,213 +866,225 @@ // WM_DESTROY - post a quit message and return // // -LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - int wmId, wmEvent; - RECT rect; - NMHDR *hdr; - HMENU hMenu ; - - switch (message) - { - case WM_NOTIFY : - switch(((LPNMHDR)lParam)->code) - { - case NM_DBLCLK : - hdr = (NMHDR FAR*)lParam; - if(hdr->hwndFrom == hwndListView) - { - LPNMITEMACTIVATE lpnmitem = (LPNMITEMACTIVATE)lParam; - - if(lpnmitem->iItem != -1) - { - DialogBox (hInst, MAKEINTRESOURCE(IDD_EVENTDETAILDIALOG), hWnd, EventDetails); - } - } - break; - } - break; - case WM_COMMAND: - wmId = LOWORD(wParam); - wmEvent = HIWORD(wParam); - - if ((wmId == ID_LOG_APPLICATION) || - (wmId == ID_LOG_SYSTEM) || - (wmId == ID_LOG_SECURITY)) - { - hMenu = GetMenu (hWnd) ; // get the menu handle. Use it below - - CheckMenuItem (hMenu, ID_LOG_APPLICATION , MF_UNCHECKED) ; - CheckMenuItem (hMenu, ID_LOG_SYSTEM , MF_UNCHECKED) ; - CheckMenuItem (hMenu, ID_LOG_SECURITY , MF_UNCHECKED) ; - - if (hMenu) - { - CheckMenuItem (hMenu, wmId , MF_CHECKED) ; - } - } - - // Parse the menu selections: - switch (wmId) - { - case ID_LOG_APPLICATION: - QueryEventMessages ( - lpComputerName, // Use the local computer. - EVENT_SOURCE_APPLICATION); // The event log category - break; - case ID_LOG_SYSTEM: - QueryEventMessages ( - lpComputerName, // Use the local computer. - EVENT_SOURCE_SYSTEM); // The event log category - break; - case ID_LOG_SECURITY: - QueryEventMessages ( - lpComputerName, // Use the local computer. - EVENT_SOURCE_SECURITY); // The event log category - break; - case IDM_REFRESH: - Refresh (); - break; - case IDM_ABOUT: - DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); - break; - case IDM_HELP: - MessageBox ( - NULL , - _TEXT("Help not implemented yet!") , - _TEXT("Event Log") , - MB_OK | MB_ICONINFORMATION); - break; - case IDM_EXIT: - DestroyWindow(hWnd); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - break; - case WM_SIZE: - { - //Gets the window rectangle - GetClientRect(hWnd, &rect); - - //Relocate the listview - MoveWindow( - hwndListView, - 0, - 0, - rect.right, - rect.bottom - 20, - 1); - - // Resize the statusbar; - SendMessage (hwndStatus, message, wParam, lParam); - } - break; - case WM_DESTROY: - PostQuitMessage(0); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - return 0; -} +LRESULT CALLBACK +WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + int wmId, wmEvent; + RECT rect; + NMHDR *hdr; + HMENU hMenu; + + switch (message) + { + case WM_NOTIFY: + switch (((LPNMHDR)lParam)->code) + { + case NM_DBLCLK : + hdr = (NMHDR FAR*)lParam; + if (hdr->hwndFrom == hwndListView) + { + LPNMITEMACTIVATE lpnmitem = (LPNMITEMACTIVATE)lParam; + + if (lpnmitem->iItem != -1) + { + DialogBox(hInst, MAKEINTRESOURCE(IDD_EVENTDETAILDIALOG), hWnd, EventDetails); + } + } + break; + } + break; + + case WM_COMMAND: + wmId = LOWORD(wParam); + wmEvent = HIWORD(wParam); + + if ((wmId == ID_LOG_APPLICATION) || + (wmId == ID_LOG_SYSTEM) || + (wmId == ID_LOG_SECURITY)) + { + hMenu = GetMenu(hWnd); // get the menu handle. Use it below + + CheckMenuItem(hMenu, ID_LOG_APPLICATION, MF_UNCHECKED); + CheckMenuItem(hMenu, ID_LOG_SYSTEM, MF_UNCHECKED); + CheckMenuItem (hMenu, ID_LOG_SECURITY, MF_UNCHECKED); + + if (hMenu) + { + CheckMenuItem(hMenu, wmId, MF_CHECKED); + } + } + + // Parse the menu selections: + switch (wmId) + { + case ID_LOG_APPLICATION: + QueryEventMessages(lpComputerName, // Use the local computer. + EVENT_SOURCE_APPLICATION); // The event log category + break; + + case ID_LOG_SYSTEM: + QueryEventMessages(lpComputerName, // Use the local computer. + EVENT_SOURCE_SYSTEM); // The event log category + break; + + case ID_LOG_SECURITY: + QueryEventMessages(lpComputerName, // Use the local computer. + EVENT_SOURCE_SECURITY); // The event log category + break; + + case IDM_REFRESH: + Refresh(); + break; + + case IDM_ABOUT: + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); + break; + + case IDM_HELP: + MessageBox(NULL, + _TEXT("Help not implemented yet!"), + _TEXT("Event Log"), + MB_OK | MB_ICONINFORMATION); + break; + + case IDM_EXIT: + DestroyWindow(hWnd); + break; + + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + break; + + case WM_SIZE: + { + // Gets the window rectangle + GetClientRect(hWnd, &rect); + + // Relocate the listview + MoveWindow(hwndListView, + 0, + 0, + rect.right, + rect.bottom - 20, + 1); + + // Resize the statusbar; + SendMessage(hwndStatus, message, wParam, lParam); + } + break; + + case WM_DESTROY: + PostQuitMessage(0); + break; + + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + + return 0; +} +
// Message handler for about box. -INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - UNREFERENCED_PARAMETER(lParam); - switch (message) - { - case WM_INITDIALOG: - { - return (INT_PTR)TRUE; - } - case WM_COMMAND: - if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) - { - EndDialog(hDlg, LOWORD(wParam)); - return (INT_PTR)TRUE; - } - - break; - } - return (INT_PTR)FALSE; +INT_PTR CALLBACK +About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + { + return (INT_PTR)TRUE; + } + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + + return (INT_PTR)FALSE; }
VOID -DisplayEvent (HWND hDlg) -{ - char szEventType[MAX_PATH]; - char szTime[MAX_PATH]; - char szDate[MAX_PATH]; - char szUser[MAX_PATH]; - char szComputer[MAX_PATH]; - char szSource[MAX_PATH]; - char szCategory[MAX_PATH]; - char szEventID[MAX_PATH]; - char szEventText[EVENT_MESSAGE_EVENTTEXT_BUFFER]; - char szEventData[MAX_PATH]; - BOOL bEventData = FALSE; - LVITEM li; - EVENTLOGRECORD* pevlr; - - // Get index of selected item - int iIndex = (int)SendMessage (hwndListView ,LVM_GETNEXTITEM, -1 , LVNI_SELECTED | LVNI_FOCUSED); +DisplayEvent(HWND hDlg) +{ + char szEventType[MAX_PATH]; + char szTime[MAX_PATH]; + char szDate[MAX_PATH]; + char szUser[MAX_PATH]; + char szComputer[MAX_PATH]; + char szSource[MAX_PATH]; + char szCategory[MAX_PATH]; + char szEventID[MAX_PATH]; + char szEventText[EVENT_MESSAGE_EVENTTEXT_BUFFER]; + char szEventData[MAX_PATH]; + BOOL bEventData = FALSE; + LVITEM li; + EVENTLOGRECORD* pevlr; + int iIndex; + + // Get index of selected item + iIndex = (int)SendMessage (hwndListView ,LVM_GETNEXTITEM, -1 , LVNI_SELECTED | LVNI_FOCUSED);
li.mask = LVIF_PARAM; li.iItem = iIndex; li.iSubItem = 0;
- (void)ListView_GetItem(hwndListView, &li); - - pevlr = (EVENTLOGRECORD*)li.lParam; - - if (iIndex != -1) - { - ListView_GetItemText (hwndListView , iIndex , 0 , szEventType , sizeof( szEventType )); - ListView_GetItemText (hwndListView , iIndex , 1 , szDate , sizeof( szDate )); - ListView_GetItemText (hwndListView , iIndex , 2 , szTime , sizeof( szTime )); - ListView_GetItemText (hwndListView , iIndex , 3 , szSource , sizeof( szSource )); - ListView_GetItemText (hwndListView , iIndex , 4 , szCategory , sizeof( szCategory )); - ListView_GetItemText (hwndListView , iIndex , 5 , szEventID , sizeof( szEventID )); - ListView_GetItemText (hwndListView , iIndex , 6 , szUser , sizeof( szUser )); - ListView_GetItemText (hwndListView , iIndex , 7 , szComputer , sizeof( szComputer )); - ListView_GetItemText (hwndListView , iIndex , 8 , szEventData , sizeof( szEventData )); - - bEventData = !(strlen(szEventData) == 0); - - GetEventMessage (lpSourceLogName , szSource , pevlr , szEventText); - - EnableWindow(GetDlgItem(hDlg , IDC_BYTESRADIO) , bEventData); - EnableWindow(GetDlgItem(hDlg , IDC_WORDRADIO) , bEventData); - - SetDlgItemText (hDlg, IDC_EVENTDATESTATIC , szDate); - SetDlgItemText (hDlg, IDC_EVENTTIMESTATIC , szTime); - SetDlgItemText (hDlg, IDC_EVENTUSERSTATIC , szUser); - SetDlgItemText (hDlg, IDC_EVENTSOURCESTATIC , szSource); - SetDlgItemText (hDlg, IDC_EVENTCOMPUTERSTATIC , szComputer); - SetDlgItemText (hDlg, IDC_EVENTCATEGORYSTATIC , szCategory); - SetDlgItemText (hDlg, IDC_EVENTIDSTATIC , szEventID); - SetDlgItemText (hDlg, IDC_EVENTTYPESTATIC , szEventType); - SetDlgItemText (hDlg, IDC_EVENTTEXTEDIT , szEventText); - SetDlgItemText (hDlg, IDC_EVENTDATAEDIT , szEventData); - } - else - { - MessageBox( - NULL, - "No Items in ListView", - "Error", - MB_OK | MB_ICONINFORMATION); - } -} + (void)ListView_GetItem(hwndListView, &li); + + pevlr = (EVENTLOGRECORD*)li.lParam; + + if (iIndex != -1) + { + ListView_GetItemText(hwndListView, iIndex, 0, szEventType, sizeof(szEventType)); + ListView_GetItemText(hwndListView, iIndex, 1, szDate, sizeof(szDate)); + ListView_GetItemText(hwndListView, iIndex, 2, szTime, sizeof(szTime)); + ListView_GetItemText(hwndListView, iIndex, 3, szSource, sizeof(szSource)); + ListView_GetItemText(hwndListView, iIndex, 4, szCategory, sizeof(szCategory)); + ListView_GetItemText(hwndListView, iIndex, 5, szEventID, sizeof(szEventID)); + ListView_GetItemText(hwndListView, iIndex, 6, szUser, sizeof(szUser)); + ListView_GetItemText(hwndListView, iIndex, 7, szComputer, sizeof(szComputer)); + ListView_GetItemText(hwndListView, iIndex, 8, szEventData, sizeof(szEventData)); + + bEventData = !(strlen(szEventData) == 0); + + GetEventMessage(lpSourceLogName, szSource, pevlr, szEventText); + + EnableWindow(GetDlgItem(hDlg, IDC_BYTESRADIO), bEventData); + EnableWindow(GetDlgItem(hDlg, IDC_WORDRADIO), bEventData); + + SetDlgItemText(hDlg, IDC_EVENTDATESTATIC, szDate); + SetDlgItemText(hDlg, IDC_EVENTTIMESTATIC, szTime); + SetDlgItemText(hDlg, IDC_EVENTUSERSTATIC, szUser); + SetDlgItemText(hDlg, IDC_EVENTSOURCESTATIC, szSource); + SetDlgItemText(hDlg, IDC_EVENTCOMPUTERSTATIC, szComputer); + SetDlgItemText(hDlg, IDC_EVENTCATEGORYSTATIC, szCategory); + SetDlgItemText(hDlg, IDC_EVENTIDSTATIC, szEventID); + SetDlgItemText(hDlg, IDC_EVENTTYPESTATIC, szEventType); + SetDlgItemText(hDlg, IDC_EVENTTEXTEDIT, szEventText); + SetDlgItemText(hDlg, IDC_EVENTDATAEDIT, szEventData); + } + else + { + MessageBox(NULL, + "No Items in ListView", + "Error", + MB_OK | MB_ICONINFORMATION); + } +} +
static -INT_PTR CALLBACK StatusMessageWindowProc( - IN HWND hwndDlg, - IN UINT uMsg, - IN WPARAM wParam, - IN LPARAM lParam) +INT_PTR CALLBACK +StatusMessageWindowProc(IN HWND hwndDlg, + IN UINT uMsg, + IN WPARAM wParam, + IN LPARAM lParam) { UNREFERENCED_PARAMETER(wParam);
@@ -1082,62 +1098,65 @@ return FALSE; }
+ // Message handler for event details box. -INT_PTR CALLBACK EventDetails(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - UNREFERENCED_PARAMETER(lParam); - switch (message) - { - case WM_INITDIALOG: - { - // Show event info on dialog box - DisplayEvent (hDlg); - return (INT_PTR)TRUE; - } - - case WM_COMMAND: - if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) - { - EndDialog(hDlg, LOWORD(wParam)); - return (INT_PTR)TRUE; - } - if (LOWORD(wParam) == IDPREVIOUS) - { - SendMessage (hwndListView, WM_KEYDOWN, VK_UP, 0); - - // Show event info on dialog box - DisplayEvent (hDlg); - return (INT_PTR)TRUE; - } - - if (LOWORD(wParam) == IDNEXT) - { - SendMessage (hwndListView, WM_KEYDOWN, VK_DOWN, 0); - - // Show event info on dialog box - DisplayEvent (hDlg); - return (INT_PTR)TRUE; - } - - if (LOWORD(wParam) == IDC_BYTESRADIO) - { - return (INT_PTR)TRUE; - } - - if (LOWORD(wParam) == IDC_WORDRADIO) - { - return (INT_PTR)TRUE; - } - - if (LOWORD(wParam) == IDHELP) - { - MessageBox (NULL , - _TEXT("Help not implemented yet!") , - _TEXT("Event Log") , - MB_OK | MB_ICONINFORMATION); - return (INT_PTR)TRUE; - } - break; - } - return (INT_PTR)FALSE; -} +INT_PTR CALLBACK +EventDetails(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + + switch (message) + { + case WM_INITDIALOG: + // Show event info on dialog box + DisplayEvent(hDlg); + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + + if (LOWORD(wParam) == IDPREVIOUS) + { + SendMessage(hwndListView, WM_KEYDOWN, VK_UP, 0); + + // Show event info on dialog box + DisplayEvent(hDlg); + return (INT_PTR)TRUE; + } + + if (LOWORD(wParam) == IDNEXT) + { + SendMessage(hwndListView, WM_KEYDOWN, VK_DOWN, 0); + + // Show event info on dialog box + DisplayEvent(hDlg); + return (INT_PTR)TRUE; + } + + if (LOWORD(wParam) == IDC_BYTESRADIO) + { + return (INT_PTR)TRUE; + } + + if (LOWORD(wParam) == IDC_WORDRADIO) + { + return (INT_PTR)TRUE; + } + + if (LOWORD(wParam) == IDHELP) + { + MessageBox(NULL, + _TEXT("Help not implemented yet!"), + _TEXT("Event Log"), + MB_OK | MB_ICONINFORMATION); + return (INT_PTR)TRUE; + } + break; + } + + return (INT_PTR)FALSE; +}
Modified: trunk/reactos/base/applications/mscutils/eventvwr/resource.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mscutils/... ============================================================================== --- trunk/reactos/base/applications/mscutils/eventvwr/resource.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/mscutils/eventvwr/resource.h [iso-8859-1] Sat Nov 22 13:25:48 2008 @@ -5,7 +5,7 @@ #define IDC_MYICON 2 #define IDNEXT 3 #define IDD_EVENTVWR_DIALOG 102 -#define IDD_PROGRESSBOX 150 +#define IDD_PROGRESSBOX 150 #define IDS_APP_TITLE 103 #define IDD_ABOUTBOX 103 #define IDM_ABOUT 104 @@ -14,14 +14,14 @@ #define IDI_SMALL 108 #define IDC_EVENTVWR 109 #define IDC_EVENTSTRINGIDNOTFOUND 209 -#define IDC_PROCESSPROGRESS 250 -#define IDC_EVENTLOG_ERROR_TYPE 251 -#define IDC_EVENTLOG_WARNING_TYPE 252 -#define IDC_EVENTLOG_INFORMATION_TYPE 253 -#define IDC_EVENTLOG_AUDIT_SUCCESS 254 -#define IDC_EVENTLOG_AUDIT_FAILURE 255 -#define IDC_EVENTLOG_SUCCESS 256 -#define IDC_EVENTLOG_UNKNOWN_TYPE 257 +#define IDC_PROCESSPROGRESS 250 +#define IDC_EVENTLOG_ERROR_TYPE 251 +#define IDC_EVENTLOG_WARNING_TYPE 252 +#define IDC_EVENTLOG_INFORMATION_TYPE 253 +#define IDC_EVENTLOG_AUDIT_SUCCESS 254 +#define IDC_EVENTLOG_AUDIT_FAILURE 255 +#define IDC_EVENTLOG_SUCCESS 256 +#define IDC_EVENTLOG_UNKNOWN_TYPE 257 #define IDR_MAINFRAME 128 #define IDI_WARNINGICON 129 #define IDI_INFORMATIONICON 130 @@ -40,7 +40,7 @@ #define IDC_EVENTTEXTEDIT2 1010 #define IDC_BYTESRADIO 1011 #define IDC_WORDRADIO 1013 -#define IDC_EVENTDATAEDIT 1014 +#define IDC_EVENTDATAEDIT 1014 #define ID_LOG_APLICATION 32771 #define ID_LOG_SECURITY 32772 #define ID_LOG_SYSTEM 32773