mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 20:56:26 +00:00
Replace TABs by Spaces.
No code changes! svn path=/trunk/; revision=37564
This commit is contained in:
parent
01f04141d9
commit
db8c3e9162
2 changed files with 793 additions and 774 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue