/
githubmirror
/
PowerToys
Обзор
Документация
Войти
/
githubmirror
/
PowerToys
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/modules/Workspaces/workspaces-common/WindowEnumerator.h
35 строк
723 B
Seraphima Zykova
[New Module] Workspaces (#34324)
23 авг 2024, 10:28
Не верифицирован
23 авг 2024, 10:28
5796199
Код
Авторство
О чём код?
#pragma once #include <functional> #include <vector> #include <Windows.h> class WindowEnumerator { public: static std::vector<HWND> Enumerate(const std::function<bool(HWND)>& filter) { WindowEnumerator inst; inst.m_filter = filter; EnumWindows(Callback, reinterpret_cast<LPARAM>(&inst)); return inst.m_windows; } private: WindowEnumerator() = default; ~WindowEnumerator() = default; static BOOL CALLBACK Callback(HWND window, LPARAM data) { WindowEnumerator* inst = reinterpret_cast<WindowEnumerator*>(data); if (inst->m_filter(window)) { inst->m_windows.push_back(window); } return TRUE; } std::vector<HWND> m_windows; std::function<bool(HWND)> m_filter = [](HWND) { return true; }; };