| 16 | |
| 17 | |
| 18 | class CKernelPoolView : |
| 19 | public CWindowImpl<CKernelPoolView, CListViewCtrl>, |
| 20 | public CCustomDraw<CKernelPoolView>, |
| 21 | public CIdleHandler, |
| 22 | public IView{ |
| 23 | public: |
| 24 | enum ColumnType { |
| 25 | TagName, |
| 26 | PagedAllocs, |
| 27 | PagedFrees, |
| 28 | PagedDiff, |
| 29 | PagedUsage, |
| 30 | |
| 31 | NonPagedAllocs, |
| 32 | NonPagedFrees, |
| 33 | NonPagedDiff, |
| 34 | NonPagedUsage, |
| 35 | |
| 36 | SourceName, |
| 37 | SourceDescription, |
| 38 | NumColumns |
| 39 | }; |
| 40 | |
| 41 | DECLARE_WND_SUPERCLASS(nullptr,CListViewCtrl::GetWndClassName()) |
| 42 | |
| 43 | CKernelPoolView(IMainFrame* pFrame):m_pFrame(pFrame){} |
| 44 | |
| 45 | void LoadPoolTagText(); |
| 46 | void UpdatePoolTags(); |
| 47 | ULONG UpdateSystemPoolTags(); |
| 48 | ULONG UpdateSessionPoolTags(ULONG sessionId); |
| 49 | void AddTag(const SYSTEM_POOLTAG& info, int index); |
| 50 | void UpdateVisible(); |
| 51 | bool CompareItems(const TagItem& i1, const TagItem& i2); |
| 52 | void DoSort(); |
| 53 | void SetToolBar(HWND hWnd); |
| 54 | |
| 55 | void AddCellColor(CellColor& cell, DWORD64 targetTime = 0); |
| 56 | void RemoveCellColor(const CellColorKey& cell); |
| 57 | int GetChange(const SYSTEM_POOLTAG& info, const SYSTEM_POOLTAG& newinfo, ColumnType type) const; |
| 58 | |
| 59 | size_t GetTotalPaged() const { |
| 60 | return m_TotalPaged; |
| 61 | } |
| 62 | |
| 63 | size_t GetTotalNonPaged() const { |
| 64 | return m_TotalNonPaged; |
| 65 | } |
| 66 | |
| 67 | BOOL PreTranslateMessage(MSG* pMsg); |
| 68 | |
| 69 | // CCustomDraw |
| 70 | DWORD OnPrePaint(int id, LPNMCUSTOMDRAW cd); |
| 71 | DWORD OnItemPrePaint(int id, LPNMCUSTOMDRAW cd); |
| 72 | DWORD OnSubItemPrePaint(int id, LPNMCUSTOMDRAW cd); |
| 73 | |
| 74 | BOOL OnIdle() override; |
| 75 |
nothing calls this directly
no outgoing calls
no test coverage detected