Replace TABs by Spaces.

No code changes!

svn path=/trunk/; revision=37564
This commit is contained in:
Eric Kohl 2008-11-22 19:25:48 +00:00
parent 01f04141d9
commit db8c3e9162
2 changed files with 793 additions and 774 deletions

View file

@ -65,12 +65,14 @@ 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);
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,
int APIENTRY
_tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
@ -94,7 +96,7 @@ int APIENTRY _tWinMain(HINSTANCE hInstance,
MyRegisterClass(hInstance);
// Perform application initialization:
if (!InitInstance (hInstance, nCmdShow))
if (!InitInstance(hInstance, nCmdShow))
{
return FALSE;
}
@ -111,14 +113,18 @@ int APIENTRY _tWinMain(HINSTANCE hInstance,
}
}
return (int) msg.wParam;
return (int)msg.wParam;
}
VOID EventTimeToSystemTime (DWORD EventTime, SYSTEMTIME *pSystemTime)
VOID
EventTimeToSystemTime(DWORD EventTime,
SYSTEMTIME *pSystemTime)
{
SYSTEMTIME st1970 = { 1970, 1, 0, 1, 0, 0, 0, 0 };
FILETIME ftLocal;
union {
union
{
FILETIME ft;
ULONGLONG ll;
} u1970, uUCT;
@ -131,8 +137,9 @@ VOID EventTimeToSystemTime (DWORD EventTime, SYSTEMTIME *pSystemTime)
FileTimeToSystemTime(&ftLocal, pSystemTime);
}
void
TrimNulls ( LPSTR s )
TrimNulls(LPSTR s)
{
char *c;
@ -145,8 +152,9 @@ TrimNulls ( LPSTR s )
}
}
BOOL GetEventMessageFileDLL(
IN LPCTSTR lpLogName,
BOOL
GetEventMessageFileDLL(IN LPCTSTR lpLogName,
IN LPCTSTR SourceName,
IN LPCTSTR EntryName,
OUT LPSTR ExpandedName)
@ -162,23 +170,20 @@ BOOL GetEventMessageFileDLL(
_tcscat(szKeyName, _T("\\"));
_tcscat(szKeyName, lpLogName);
if (RegOpenKeyEx(
HKEY_LOCAL_MACHINE,
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
szKeyName,
0,
KEY_READ,
&hAppKey) == ERROR_SUCCESS)
{
if (RegOpenKeyEx(
hAppKey,
if (RegOpenKeyEx(hAppKey,
SourceName,
0,
KEY_READ,
&hSourceKey) == ERROR_SUCCESS)
{
dwSize = MAX_PATH;
if (RegQueryValueEx(
hSourceKey,
if (RegQueryValueEx(hSourceKey,
EntryName,
NULL,
NULL,
@ -195,9 +200,9 @@ BOOL GetEventMessageFileDLL(
}
else
{
MessageBox (NULL ,
_TEXT("Registry access failed!") ,
_TEXT("Event Log") ,
MessageBox(NULL,
_TEXT("Registry access failed!"),
_TEXT("Event Log"),
MB_OK | MB_ICONINFORMATION);
}
@ -210,8 +215,9 @@ BOOL GetEventMessageFileDLL(
return bReturn;
}
BOOL GetEventCategory(
IN LPCTSTR KeyName,
BOOL
GetEventCategory(IN LPCTSTR KeyName,
IN LPCTSTR SourceName,
IN EVENTLOGRECORD *pevlr,
OUT LPTSTR CategoryName)
@ -220,18 +226,15 @@ BOOL GetEventCategory(
TCHAR szMessageDLL[MAX_PATH];
LPVOID lpMsgBuf = NULL;
if(GetEventMessageFileDLL (KeyName, SourceName, EVENT_CATEGORY_MESSAGE_FILE , szMessageDLL))
if (GetEventMessageFileDLL (KeyName, SourceName, EVENT_CATEGORY_MESSAGE_FILE , szMessageDLL))
{
hLibrary = LoadLibraryEx(
szMessageDLL,
hLibrary = LoadLibraryEx(szMessageDLL,
NULL,
DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE);
if(hLibrary != NULL)
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,
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),
@ -241,21 +244,23 @@ BOOL GetEventCategory(
{
if (lpMsgBuf)
{
//Trim the string
TrimNulls ((LPSTR)lpMsgBuf);
// Trim the string
TrimNulls((LPSTR)lpMsgBuf);
// Copy the category name
strcpy (CategoryName, (LPCTSTR)lpMsgBuf);
strcpy(CategoryName, (LPCTSTR)lpMsgBuf);
}
else
{
strcpy (CategoryName, (LPCTSTR)lpMsgBuf);
strcpy(CategoryName, (LPCTSTR)lpMsgBuf);
}
}else{
strcpy (CategoryName, "None");
}
else
{
strcpy(CategoryName, "None");
}
if(hLibrary != NULL)
if (hLibrary != NULL)
FreeLibrary(hLibrary);
// Free the buffer allocated by FormatMessage
@ -266,13 +271,14 @@ BOOL GetEventCategory(
}
}
strcpy (CategoryName, "None");
strcpy(CategoryName, "None");
return FALSE;
}
BOOL GetEventMessage(
IN LPCTSTR KeyName,
BOOL
GetEventMessage(IN LPCTSTR KeyName,
IN LPCTSTR SourceName,
IN EVENTLOGRECORD *pevlr,
OUT LPTSTR EventText)
@ -305,9 +311,9 @@ BOOL GetEventMessage(
{
if (strstr(szMessage , "%%"))
{
if (GetEventMessageFileDLL (KeyName , SourceName, EVENT_PARAMETER_MESSAGE_FILE , ParameterModuleName))
if (GetEventMessageFileDLL(KeyName , SourceName, EVENT_PARAMETER_MESSAGE_FILE, ParameterModuleName))
{
//Not yet support for reading messages from parameter message DLL
// Not yet support for reading messages from parameter message DLL
}
szArguments[i] = szMessage;
@ -323,21 +329,18 @@ BOOL GetEventMessage(
szDll = strtok(SourceModuleName, EVENT_DLL_SEPARATOR);
while ((szDll != NULL) && (!bDone))
{
hLibrary = LoadLibraryEx(
szDll,
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);
szDll = strtok(NULL, EVENT_DLL_SEPARATOR);
}
else
{
// Retrieve the message string.
if(FormatMessage(
FORMAT_MESSAGE_FROM_SYSTEM |
if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_HMODULE |
FORMAT_MESSAGE_ARGUMENT_ARRAY,
@ -358,22 +361,22 @@ BOOL GetEventMessage(
// The ID was found and the message was formated
bDone = TRUE;
//Trim the string
TrimNulls ((LPSTR)lpMsgBuf);
// Trim the string
TrimNulls((LPSTR)lpMsgBuf);
// Copy the event text
strcpy (EventText ,lpMsgBuf);
strcpy(EventText ,lpMsgBuf);
}
}
FreeLibrary (hLibrary);
FreeLibrary(hLibrary);
}
}
if (!bDone)
{
LoadString(hInst, IDC_EVENTSTRINGIDNOTFOUND, szStringIDNotFound, MAX_LOADSTRING);
wsprintf (EventText, szStringIDNotFound , (DWORD)(pevlr->EventID & 0xFFFF) , SourceName );
wsprintf(EventText, szStringIDNotFound, (DWORD)(pevlr->EventID & 0xFFFF), SourceName);
}
free(szArguments);
@ -383,15 +386,17 @@ BOOL GetEventMessage(
}
LoadString(hInst, IDC_EVENTSTRINGIDNOTFOUND, szStringIDNotFound, MAX_LOADSTRING);
wsprintf (EventText, szStringIDNotFound , (DWORD)(pevlr->EventID & 0xFFFF) , SourceName );
wsprintf(EventText, szStringIDNotFound, (DWORD)(pevlr->EventID & 0xFFFF), SourceName);
return FALSE;
}
VOID
GetEventType (WORD dwEventType, OUT LPSTR eventTypeText)
GetEventType(IN WORD dwEventType,
OUT LPSTR eventTypeText)
{
switch(dwEventType)
switch (dwEventType)
{
case EVENTLOG_ERROR_TYPE:
LoadString(hInst, IDC_EVENTLOG_ERROR_TYPE, eventTypeText, MAX_LOADSTRING);
@ -418,7 +423,7 @@ GetEventType (WORD dwEventType, OUT LPSTR eventTypeText)
}
BOOL
GetEventUserName (EVENTLOGRECORD *pelr, OUT LPSTR pszUser)
GetEventUserName(EVENTLOGRECORD *pelr, OUT LPSTR pszUser)
{
PSID lpSid;
char szName[1024];
@ -428,13 +433,12 @@ GetEventUserName (EVENTLOGRECORD *pelr, OUT LPSTR pszUser)
DWORD cbDomain = 1024;
// Point to the SID.
lpSid = (PSID)((LPBYTE) pelr + pelr->UserSidOffset);
lpSid = (PSID)((LPBYTE)pelr + pelr->UserSidOffset);
// User SID
if(pelr->UserSidLength > 0)
if (pelr->UserSidLength > 0)
{
if (LookupAccountSid(
NULL,
if (LookupAccountSid(NULL,
lpSid,
szName,
&cbName,
@ -442,7 +446,7 @@ GetEventUserName (EVENTLOGRECORD *pelr, OUT LPSTR pszUser)
&cbDomain,
&peUse))
{
strcpy (pszUser , szName);
strcpy(pszUser, szName);
return TRUE;
}
}
@ -450,22 +454,22 @@ GetEventUserName (EVENTLOGRECORD *pelr, OUT LPSTR pszUser)
return FALSE;
}
static DWORD WINAPI
ShowStatusMessageThread(
IN LPVOID lpParameter)
ShowStatusMessageThread(IN LPVOID lpParameter)
{
HWND *phWnd = (HWND *)lpParameter;
HWND hWnd;
MSG Msg;
hWnd = CreateDialogParam(
hInst,
hWnd = CreateDialogParam(hInst,
MAKEINTRESOURCE(IDD_PROGRESSBOX),
GetDesktopWindow(),
StatusMessageWindowProc,
(LPARAM)NULL);
if (!hWnd)
return 0;
*phWnd = hWnd;
ShowWindow(hWnd, SW_SHOW);
@ -480,15 +484,16 @@ ShowStatusMessageThread(
return 0;
}
VOID QueryEventMessages (
LPTSTR lpMachineName ,
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;
@ -515,20 +520,18 @@ VOID QueryEventMessages (
lpComputerName = lpMachineName;
// Open the event log.
hEventLog = OpenEventLog(
lpMachineName,
hEventLog = OpenEventLog(lpMachineName,
lpLogName);
if (hEventLog == NULL)
{
MessageBox (NULL ,
_TEXT("Could not open the event log.") ,
_TEXT("Event Log") ,
MessageBox(NULL,
_TEXT("Could not open the event log."),
_TEXT("Event Log"),
MB_OK | MB_ICONINFORMATION);
return;
}
//Disable listview redraw
// Disable listview redraw
SendMessage(hwndListView, WM_SETREDRAW, FALSE, 0);
// Clear the list view
@ -546,8 +549,7 @@ VOID QueryEventMessages (
//If we have at least 1000 records show the waiting dialog
if (dwTotalRecords > 1000)
{
CreateThread(
NULL,
CreateThread(NULL,
0,
ShowStatusMessageThread,
(LPVOID)&hwndDlg,
@ -559,21 +561,18 @@ VOID QueryEventMessages (
{
pevlr = (EVENTLOGRECORD*)malloc(MAX_PATH);
bResult = ReadEventLog(
hEventLog, // Event log handle
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
ReadEventLog(hEventLog, // event log handle
dwFlags, // read flags
0, // offset; default is 0
pevlr, // pointer to buffer
@ -584,36 +583,36 @@ VOID QueryEventMessages (
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));
lpSourceName = (LPSTR)((LPBYTE)pevlr + sizeof(EVENTLOGRECORD));
// Get the computer name
lpComputerName = (LPSTR) ((LPBYTE) pevlr + sizeof(EVENTLOGRECORD) + lstrlen(lpSourceName) + 1);
lpComputerName = (LPSTR)((LPBYTE)pevlr + sizeof(EVENTLOGRECORD) + lstrlen(lpSourceName) + 1);
// This ist the data section of the current event
lpData = (LPSTR) ((LPBYTE)pevlr + pevlr->DataOffset);
lpData = (LPSTR)((LPBYTE)pevlr + pevlr->DataOffset);
// This is the text of the current event
lpEventStr = (LPSTR) ((LPBYTE) pevlr + pevlr->StringOffset);
lpEventStr = (LPSTR)((LPBYTE) pevlr + pevlr->StringOffset);
// Compute the event type
EventTimeToSystemTime(pevlr->TimeWritten, &time);
// Get the username that generated the event
GetEventUserName (pevlr , szUsername);
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 );
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);
GetEventType(pevlr->EventType, szEventTypeText);
GetEventCategory(lpLogName, lpSourceName, pevlr, szCategory);
wsprintf (szEventID, "%u", (DWORD)(pevlr->EventID & 0xFFFF));
wsprintf (szCategoryID, "%u", (DWORD)(pevlr->EventCategory));
wsprintf(szEventID, "%u", (DWORD)(pevlr->EventID & 0xFFFF));
wsprintf(szCategoryID, "%u", (DWORD)(pevlr->EventCategory));
lviEventItem.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM;
lviEventItem.iItem = 0;
@ -621,23 +620,28 @@ VOID QueryEventMessages (
lviEventItem.lParam = (LPARAM)pevlr;
lviEventItem.pszText = szEventTypeText;
switch(pevlr->EventType)
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;
@ -655,42 +659,43 @@ VOID QueryEventMessages (
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;
pevlr = (EVENTLOGRECORD *)&bBuffer;
}
//All events loaded
// 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);
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);
// Update the status bar
SendMessage(hwndStatus, SB_SETTEXT, (WPARAM)0, (LPARAM)szStatusText);
//Set the window title
SetWindowText ( hwndMainWindow , szWindowTitle);
// Set the window title
SetWindowText(hwndMainWindow, szWindowTitle);
//Resume list view redraw
// Resume list view redraw
SendMessage(hwndListView, WM_SETREDRAW, TRUE, 0);
// Close the event log.
CloseEventLog(hEventLog);
}
VOID
Refresh (VOID)
Refresh(VOID)
{
QueryEventMessages(
lpComputerName ,
QueryEventMessages(lpComputerName,
lpSourceLogName);
}
//
// FUNCTION: MyRegisterClass()
//
@ -704,7 +709,8 @@ Refresh (VOID)
// so that the application will get 'well formed' small icons associated
// with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
ATOM
MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
@ -717,7 +723,7 @@ ATOM MyRegisterClass(HINSTANCE hInstance)
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_EVENTVWR));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_EVENTVWR);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
@ -725,6 +731,7 @@ ATOM MyRegisterClass(HINSTANCE hInstance)
return RegisterClassEx(&wcex);
}
//
// FUNCTION: InitInstance(HINSTANCE, int)
//
@ -735,15 +742,16 @@ ATOM MyRegisterClass(HINSTANCE hInstance)
// 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)
BOOL
InitInstance(HINSTANCE hInstance,
int nCmdShow)
{
HIMAGELIST hSmall;
LVCOLUMN lvc = {0};
hInst = hInstance; // Store instance handle in our global variable
hwndMainWindow = CreateWindow(
szWindowClass,
hwndMainWindow = CreateWindow(szWindowClass,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
@ -751,14 +759,12 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
NULL,
hInstance,
NULL);
if (!hwndMainWindow)
{
return FALSE;
}
hwndStatus = CreateWindowEx(
0, // no extended styles
hwndStatus = CreateWindowEx(0, // no extended styles
STATUSCLASSNAME, // status bar
"Done.", // no text
WS_CHILD | WS_BORDER | WS_VISIBLE, // styles
@ -771,8 +777,7 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
// 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,
hwndListView = CreateWindowEx(WS_EX_CLIENTEDGE,
WC_LISTVIEW,
_T(""),
LVS_SHOWSELALWAYS | WS_CHILD | WS_VISIBLE | LVS_REPORT,
@ -789,8 +794,7 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
(void)ListView_SetExtendedListViewStyle (hwndListView, LVS_EX_FULLROWSELECT);
// Create the ImageList
hSmall = ImageList_Create(
GetSystemMetrics(SM_CXSMICON),
hSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
ILC_MASK,
1,
@ -845,13 +849,13 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
ShowWindow(hwndMainWindow, nCmdShow);
UpdateWindow(hwndMainWindow);
QueryEventMessages (
lpComputerName, // Use the local computer.
QueryEventMessages(lpComputerName, // Use the local computer.
EVENT_SOURCE_APPLICATION); // The event log category
return TRUE;
}
//
// FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
@ -862,32 +866,34 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
// WM_DESTROY - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
LRESULT CALLBACK
WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
RECT rect;
NMHDR *hdr;
HMENU hMenu ;
HMENU hMenu;
switch (message)
{
case WM_NOTIFY :
switch(((LPNMHDR)lParam)->code)
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code)
{
case NM_DBLCLK :
hdr = (NMHDR FAR*)lParam;
if(hdr->hwndFrom == hwndListView)
if (hdr->hwndFrom == hwndListView)
{
LPNMITEMACTIVATE lpnmitem = (LPNMITEMACTIVATE)lParam;
if(lpnmitem->iItem != -1)
if (lpnmitem->iItem != -1)
{
DialogBox (hInst, MAKEINTRESOURCE(IDD_EVENTDETAILDIALOG), hWnd, EventDetails);
DialogBox(hInst, MAKEINTRESOURCE(IDD_EVENTDETAILDIALOG), hWnd, EventDetails);
}
}
break;
}
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
@ -896,15 +902,15 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
(wmId == ID_LOG_SYSTEM) ||
(wmId == ID_LOG_SECURITY))
{
hMenu = GetMenu (hWnd) ; // get the menu handle. Use it below
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) ;
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) ;
CheckMenuItem(hMenu, wmId, MF_CHECKED);
}
}
@ -912,48 +918,51 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
switch (wmId)
{
case ID_LOG_APPLICATION:
QueryEventMessages (
lpComputerName, // Use the local computer.
QueryEventMessages(lpComputerName, // Use the local computer.
EVENT_SOURCE_APPLICATION); // The event log category
break;
case ID_LOG_SYSTEM:
QueryEventMessages (
lpComputerName, // Use the local computer.
QueryEventMessages(lpComputerName, // Use the local computer.
EVENT_SOURCE_SYSTEM); // The event log category
break;
case ID_LOG_SECURITY:
QueryEventMessages (
lpComputerName, // Use the local computer.
QueryEventMessages(lpComputerName, // Use the local computer.
EVENT_SOURCE_SECURITY); // The event log category
break;
case IDM_REFRESH:
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") ,
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
// Gets the window rectangle
GetClientRect(hWnd, &rect);
//Relocate the listview
MoveWindow(
hwndListView,
// Relocate the listview
MoveWindow(hwndListView,
0,
0,
rect.right,
@ -961,20 +970,25 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
1);
// Resize the statusbar;
SendMessage (hwndStatus, message, wParam, lParam);
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)
INT_PTR CALLBACK
About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
@ -983,20 +997,21 @@ INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
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)
DisplayEvent(HWND hDlg)
{
char szEventType[MAX_PATH];
char szTime[MAX_PATH];
@ -1011,9 +1026,10 @@ DisplayEvent (HWND hDlg)
BOOL bEventData = FALSE;
LVITEM li;
EVENTLOGRECORD* pevlr;
int iIndex;
// Get index of selected item
int iIndex = (int)SendMessage (hwndListView ,LVM_GETNEXTITEM, -1 , LVNI_SELECTED | LVNI_FOCUSED);
iIndex = (int)SendMessage (hwndListView ,LVM_GETNEXTITEM, -1 , LVNI_SELECTED | LVNI_FOCUSED);
li.mask = LVIF_PARAM;
li.iItem = iIndex;
@ -1025,47 +1041,47 @@ DisplayEvent (HWND hDlg)
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 ));
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);
GetEventMessage(lpSourceLogName, szSource, pevlr, szEventText);
EnableWindow(GetDlgItem(hDlg , IDC_BYTESRADIO) , bEventData);
EnableWindow(GetDlgItem(hDlg , IDC_WORDRADIO) , bEventData);
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);
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,
MessageBox(NULL,
"No Items in ListView",
"Error",
MB_OK | MB_ICONINFORMATION);
}
}
static
INT_PTR CALLBACK StatusMessageWindowProc(
IN HWND hwndDlg,
INT_PTR CALLBACK
StatusMessageWindowProc(IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
@ -1082,18 +1098,19 @@ INT_PTR CALLBACK StatusMessageWindowProc(
return FALSE;
}
// Message handler for event details box.
INT_PTR CALLBACK EventDetails(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
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);
DisplayEvent(hDlg);
return (INT_PTR)TRUE;
}
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
@ -1101,21 +1118,22 @@ INT_PTR CALLBACK EventDetails(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
if (LOWORD(wParam) == IDPREVIOUS)
{
SendMessage (hwndListView, WM_KEYDOWN, VK_UP, 0);
SendMessage(hwndListView, WM_KEYDOWN, VK_UP, 0);
// Show event info on dialog box
DisplayEvent (hDlg);
DisplayEvent(hDlg);
return (INT_PTR)TRUE;
}
if (LOWORD(wParam) == IDNEXT)
{
SendMessage (hwndListView, WM_KEYDOWN, VK_DOWN, 0);
SendMessage(hwndListView, WM_KEYDOWN, VK_DOWN, 0);
// Show event info on dialog box
DisplayEvent (hDlg);
DisplayEvent(hDlg);
return (INT_PTR)TRUE;
}
@ -1131,13 +1149,14 @@ INT_PTR CALLBACK EventDetails(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
if (LOWORD(wParam) == IDHELP)
{
MessageBox (NULL ,
_TEXT("Help not implemented yet!") ,
_TEXT("Event Log") ,
MessageBox(NULL,
_TEXT("Help not implemented yet!"),
_TEXT("Event Log"),
MB_OK | MB_ICONINFORMATION);
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}