38 #define LVM_PROGRESS (WM_APP + 1) // Used by the subclassed ListView 53 #define EVENT_MESSAGE_EVENTTEXT_BUFFER 1024*10 // NOTE: Used by evtdetctl.c 54 #define EVENT_MESSAGE_FILE_BUFFER 1024*10 55 #define EVENT_DLL_SEPARATOR L";" 56 #define EVENT_CATEGORY_MESSAGE_FILE L"CategoryMessageFile" 57 #define EVENT_MESSAGE_FILE L"EventMessageFile" 58 #define EVENT_PARAMETER_MESSAGE_FILE L"ParameterMessageFile" 60 #define MAX_LOADSTRING 255 215 if (!lpCmdLine || !*lpCmdLine)
252 if (cbFileName > 0 &&
lpFileName[cbFileName - 1] ==
L'\"')
319 while (*lpTemp ==
L'\\')
479 &
Settings.wpPos.rcNormalPosition.left,
480 &
Settings.wpPos.rcNormalPosition.top,
481 &
Settings.wpPos.rcNormalPosition.right,
482 &
Settings.wpPos.rcNormalPosition.bottom,
490 Settings.wpPos.showCmd = nDefCmdShow;
557 Settings.wpPos.rcNormalPosition.left,
558 Settings.wpPos.rcNormalPosition.top,
559 Settings.wpPos.rcNormalPosition.right,
560 Settings.wpPos.rcNormalPosition.bottom,
589 iccx.
dwSize =
sizeof(iccx);
719 return (
int)
msg.wParam;
729 SYSTEMTIME st1970 = { 1970, 1, 0, 1, 0, 0, 0, 0 };
737 uUCT.ft.dwHighDateTime = 0;
738 uUCT.ft.dwLowDateTime = EventTime;
740 uUCT.ll = uUCT.ll * 10000000 + u1970.ll;
871 cbLength = (
wcslen(lpMessageDllList) + 1) *
sizeof(
WCHAR);
873 if (!szMessageDllList)
918 IN BOOL bMessagePreFormatted,
929 DWORD dwParamCount = 0;
931 size_t cchParams = 0;
938 *pFinalMessage =
NULL;
941 if (bMessagePreFormatted)
943 while ((pTempMessage =
wcschr(pTempMessage,
L'%')))
955 while ((pTempMessage =
wcsstr(pTempMessage,
L"%%")))
967 if (dwParamCount == 0)
985 pTempMessage = (
LPWSTR)pMessage;
986 if (bMessagePreFormatted)
988 while ((pTempMessage =
wcschr(pTempMessage,
L'%')) && (
i < dwParamCount))
1005 while ((pTempMessage =
wcsstr(pTempMessage,
L"%%")) && (
i < dwParamCount))
1013 while (
iswdigit(*++pTempMessage)) ;
1022 for (
i = 0;
i < dwParamCount;
i++)
1029 pParamData[
i].pParameterID,
1031 if (!pParamData[
i].pParameter)
1037 cchParams +=
wcslen(pParamData[
i].pParameter);
1046 if (!*pFinalMessage)
1052 pTempFinalMessage = *pFinalMessage;
1055 pTempMessage = (
LPWSTR)pMessage;
1056 for (
i = 0;
i < dwParamCount;
i++)
1063 pTempFinalMessage +=
cch;
1066 if (pParamData[
i].pParameter)
1082 pTempFinalMessage +=
cch;
1095 for (
i = 0;
i < dwParamCount;
i++)
1097 if (pParamData[
i].pParameter)
1116 WCHAR wszNumber[24];
1117 WCHAR wszDecimalSep[8], wszThousandSep[8];
1119 WCHAR wszGrouping[12];
1143 for (
i = 0;
i < cchGrouping;
i++)
1145 WCHAR wch = wszGrouping[
i];
1147 if (wch >=
L'0' && wch <=
L'9')
1149 else if (wch !=
L';')
1170 return cchResult - 1;
1176 UINT cchWritten, cchRemaining;
1178 size_t cchStringRemaining;
1181 cchWritten =
FormatInteger(cbSize, pwszResult, cchResultMax);
1186 pwszEnd = pwszResult + cchWritten;
1187 cchRemaining = cchResultMax - cchWritten;
1188 StringCchCopyExW(pwszEnd, cchRemaining,
L" ", &pwszEnd, &cchStringRemaining, 0);
1189 cchRemaining = (
UINT)cchStringRemaining;
1191 cchRemaining -= cchWritten;
1193 return cchResultMax - cchRemaining;
1199 UINT cchWritten, cchRemaining;
1201 size_t cchCopyRemaining;
1213 pwszEnd = pwszResult + cchWritten;
1214 cchRemaining = cchResultMax - cchWritten;
1216 cchRemaining = (
UINT)cchCopyRemaining;
1220 pwszEnd += cchWritten;
1221 cchRemaining -= cchWritten;
1236 UINT cchRemaining = cchResult;
1237 size_t cchCopyRemaining;
1238 LPWSTR pwszEnd = pwszResult;
1249 cchRemaining -= cchWritten;
1250 pwszEnd += cchWritten;
1253 cchRemaining = (
UINT)cchCopyRemaining;
1270 IN INT SelectedImage,
1280 Insert.item.pszText = lpText;
1281 Insert.item.iImage =
Image;
1282 Insert.item.iSelectedImage = SelectedImage;
1283 Insert.item.lParam =
lParam;
1337 if (EventLog->LogName)
1340 if (EventLog->ComputerName)
1343 if (EventLog->FileName)
1359 pStr = (
PWSTR)MultiStr;
1360 while (*pStr) pStr += (
wcslen(pStr) + 1);
1361 Length = MultiStr - pStr + 2;
1390 if (!EventLogFilter)
1394 EventLogFilter->
Warning = Warning;
1411 return EventLogFilter;
1417 if (EventLogFilter->Sources)
1420 if (EventLogFilter->Users)
1423 if (EventLogFilter->ComputerNames)
1486 if (ComputerName && *ComputerName)
1489 while (*ComputerName ==
L'\\')
1519 if (ComputerName && *ComputerName)
1524 if (*lpFullFileName && lpFullFileName[1] ==
L':')
1525 lpFullFileName[1] =
L'$';
1530 lpFullFileName[0] =
L'\\';
1531 lpFullFileName[1] =
L'\\';
1532 wcsncpy(lpFullFileName + 2, ComputerName,
wcslen(ComputerName));
1533 lpFullFileName[2 +
wcslen(ComputerName)] =
L'\\';
1619 pevlr->EventCategory,
1640 if (pevlr->EventCategory != 0)
1660 WCHAR SourceModuleName[1024];
1661 WCHAR ParameterModuleName[1024];
1664 LPWSTR szStringArray, szMessage;
1668 szStringArray = (
LPWSTR)((
LPBYTE)pevlr + pevlr->StringOffset);
1679 if (!IsParamModNameCached)
1686 if (IsParamModNameCached)
1691 szMessage = szStringArray;
1704 for (
i = 0;
i < pevlr->NumStrings;
i++)
1706 szMessage +=
wcslen(szMessage) + 1;
1708 cch = szMessage - szStringArray;
1711 szMessage = szStringArray;
1712 for (
i = 0;
i < pevlr->NumStrings;
i++)
1714 lpMsgBuf = szMessage;
1715 while ((lpMsgBuf =
wcsstr(lpMsgBuf,
L"%%")))
1723 szArguments[
i] = szMessage;
1724 szMessage +=
wcslen(szMessage) + 1;
1749 lpMsgBuf = szMessage;
1770 szMessage = szStringArray;
1771 for (
i = 0;
i < pevlr->NumStrings;
i++)
1775 szMessage +=
wcslen(szMessage) + 1;
1786 switch (dwEventType)
1820 WCHAR szDomain[1024];
1827 pCurrentSid = (
PSID)((
LPBYTE)pelr + pelr->UserSidOffset);
1834 else if (*pLastSid &&
EqualSid(*pLastSid, pCurrentSid))
1840 if (pelr->UserSidLength > 0)
1905 if ((pevlr->EventType ==
EVENTLOG_SUCCESS && !EventLogFilter->Information ) ||
1931 if (!*FilterString && !*
String)
1940 if ( (!*FilterString && *
String) || (*FilterString && !*
String) )
1949 pStr = FilterString;
1958 pStr += (
wcslen(pStr) + 1);
1986 DWORD dwTotalRecords = 0, dwCurrentRecord = 0;
1988 size_t cchRemaining;
1995 UINT uStep = 0, uStepAt = 0, uPos = 0;
2008 PWCHAR lpTitleTemplateEnd;
2019 EventLog = EventLogFilter->
EventLogs[0];
2031 &lpTitleTemplateEnd,
2035 dwMaxLength = (
DWORD)cchRemaining;
2042 sizeof(szStatusText),
2053 L"Many-logs filtering is not implemented yet!!",
2083 EventLog = EventLogFilter->
EventLogs[LogIndex];
2091 if (hEventLog ==
NULL)
2102 if (dwTotalRecords > 0)
2129 uStepAt = (dwTotalRecords / 100) + 1;
2148 dwWanted = dwNeeded;
2164 pEvlrBuffer = (
LPBYTE)pEvlr;
2165 pEvlrEnd = pEvlrBuffer + dwRead;
2167 while (pEvlrBuffer < pEvlrEnd)
2170 PWSTR lpszUsername, lpszCategoryName;
2175 if (uStep % uStepAt == 0)
2204 lpszUsername =
GetEventUserName(pEvlrTmp, &pLastSid, szUsername) ? szUsername : szNoUsername;
2212 lpszCategoryName =
GetEventCategory(EventLog->
LogName, lpszSourceName, pEvlrTmp, szCategory) ? szCategory : szNoCategory;
2221 lviEventItem.
iItem = 0;
2224 lviEventItem.
pszText = szEventTypeText;
2261 pEvlrBuffer += pEvlrTmp->
Length;
2292 sizeof(szStatusText),
2397 if (!EventLogFilter)
2459 tvItemEx.
hItem = hti;
2464 *phti = tvItemEx.
hItem;
2491 if (EventLog ==
NULL)
2502 if (EventLogFilter ==
NULL)
2514 cchFileName =
wcslen(lpszFileName) + 1;
2521 2, 3, (
LPARAM)EventLogFilter);
2559 if (!EventLogFilter)
2572 EventLog = EventLogFilter->EventLogs[0];
2593 if (!EventLogFilter)
2634 if (!EventLogFilter)
2662 EventLog = EventLogFilter->EventLogs[0];
2686 if (!EventLogFilter)
2699 wcex.
cbSize =
sizeof(wcex);
2731 DWORD dwType, cbData;
2732 DWORD dwMessageID = 0;
2782 cbData =
sizeof(dwMessageID);
2792 *pdwMessageID = dwMessageID;
2805 HKEY hEventLogKey, hLogKey;
2806 DWORD dwNumLogs = 0;
2807 DWORD dwIndex, dwMaxKeyLength;
2868 for (dwIndex = 0; dwIndex < dwNumLogs; dwIndex++)
2870 lpcName = dwMaxKeyLength;
2880 if (EventLog ==
NULL)
2888 if (EventLogFilter ==
NULL)
2980 2, 3, (
LPARAM)EventLogFilter);
2985 hItemDefault =
hItem;
3055 rs =
Settings.wpPos.rcNormalPosition;
3113 (rcClient.
bottom - rcClient.
top) - StatusHeight,
3169 : (rcClient.
bottom - rcClient.
top) - StatusHeight,
3331 :
cy - StatusHeight,
3426 while (*pszText &&
iswspace(*pszText))
3514 if (EventLogFilter &&
ClearEvents(EventLogFilter))
3559 if ( EventLogFilter)
3629 L"Help not implemented yet!",
3834 DWORD dwMaxSize = 0, dwRetention = 0;
3870 cbData =
sizeof(dwMaxSize);
3881 dwMaxSize = 16384 * 1024;
3886 cbData =
sizeof(dwRetention);
3900 dwRetention = (dwRetention + 24*3600 - 1) / (24*3600);
3992 if (dwRetention == 0)
4024 DWORD dwMaxSize = 0, dwRetention = 0;
4071 sizeof(dwRetention));
4122 if (EventLogFilter &&
ClearEvents(EventLogFilter))
4184 L"Help not implemented yet!",
4209 if (!EventLogFilter)
4221 psh.
dwSize =
sizeof(psh);
4233 psp[0].
dwSize =
sizeof(psp[0]);
4242 psp[1].
dwSize =
sizeof(psp[1]);
4272 INT sbVXSize, sbHYSize;
4292 rcWnd.
right - sbVXSize,
4327 cxMin += -2*rcWnd.left;
4328 cyMin += -rcWnd.top + 12;
4331 cxOld = rcWnd.right - rcWnd.left;
4332 cyOld = rcWnd.bottom - rcWnd.top;
4372 L"Help not implemented yet!",
HANDLE WINAPI OpenEventLogW(IN LPCWSTR lpUNCServerName, IN LPCWSTR lpSourceName)
_In_ LPCSTR _Out_writes_bytes_to_opt_ cbSid PSID _Inout_ LPDWORD _Out_writes_to_opt_ cchReferencedDomainName LPSTR _Inout_ LPDWORD _Out_ PSID_NAME_USE peUse
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
INT_PTR EventLogProperties(HINSTANCE, HWND, PEVENTLOGFILTER)
STRSAFEAPI StringCchCopyNW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc, size_t cchToCopy)