| 25 | } |
| 26 | |
| 27 | void CLogonSessionsView::DoSort(const SortInfo* si) { |
| 28 | if (si == nullptr) |
| 29 | return; |
| 30 | |
| 31 | std::sort(m_Sessions.begin(), m_Sessions.end(), [=](const auto& s1, const auto& s2) { |
| 32 | switch (si->SortColumn) { |
| 33 | case 0: return SortHelper::SortNumbers(s1.Index, s2.Index, si->SortAscending); |
| 34 | case 1: return SortHelper::SortNumbers(*(long long*)&s1.LogonId, *(long long*)&s2.LogonId, si->SortAscending); |
| 35 | case 2: return SortHelper::SortStrings(s1.LogonDomain + L"\\" + s1.UserName, s2.LogonDomain + L"\\" + s2.UserName, si->SortAscending); |
| 36 | case 3: return SortHelper::SortNumbers(s1.LogonTime.QuadPart, s2.LogonTime.QuadPart, si->SortAscending); |
| 37 | case 4: return SortHelper::SortNumbers(s1.Session, s2.Session, si->SortAscending); |
| 38 | case 5: return SortHelper::SortStrings(LogonTypeToString(s1.LogonType), LogonTypeToString(s2.LogonType), si->SortAscending); |
| 39 | case 6: return SortHelper::SortStrings(s1.AuthenticationPackage, s2.AuthenticationPackage, si->SortAscending); |
| 40 | } |
| 41 | return false; |
| 42 | }); |
| 43 | } |
| 44 | |
| 45 | bool CLogonSessionsView::IsSortable(HWND,int col) const { |
| 46 | return col != 7; |
nothing calls this directly
no test coverage detected