#ifndef __APPVERIFIER_VIEWLOG_H_ #define __APPVERIFIER_VIEWLOG_H_ extern TCHAR g_szSingleLogFile[MAX_PATH]; class CProcessLogEntry; class CProcessLogInstance { public: wstring strText; VLOG_LEVEL eLevel; wstring strModule; DWORD dwOffset; DWORD dwProcessLogEntry; // parent index pointer DWORD dwNumRepeats; BOOL bDuplicate; // is this a dupe of a previous entry (so no need to display)? CProcessLogInstance(void) : dwOffset(0), eLevel(VLOG_LEVEL_ERROR), dwProcessLogEntry(0), dwNumRepeats(1), bDuplicate(FALSE) {} }; typedef vector CProcessLogInstanceArray; typedef vector CIndexArray; class CProcessLogEntry { public: wstring strShimName; DWORD dwLogNum; wstring strLogTitle; wstring strLogDescription; wstring strLogURL; DWORD dwOccurences; CIndexArray arrLogInstances; // array indexes of instances HTREEITEM hTreeItem; VLOG_LEVEL eLevel; CProcessLogEntry(void) : dwLogNum(0), dwOccurences(0), eLevel(VLOG_LEVEL_INFO) {} }; typedef vector CProcessLogEntryArray; class CSessionLogEntry { public: wstring strExeName; // just name and ext wstring strExePath; // full path to exe SYSTEMTIME RunTime; wstring strLogPath; // full path to log HTREEITEM hTreeItem; CProcessLogEntryArray arrProcessLogEntries; CProcessLogInstanceArray arrProcessLogInstances; CSessionLogEntry(void) : hTreeItem(NULL) { ZeroMemory(&RunTime, sizeof(SYSTEMTIME)); } }; typedef vector CSessionLogEntryArray; INT_PTR CALLBACK DlgViewLog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); #endif // #ifndef __APPVERIFIER_VIEWLOG_H_