// Enumerates visible top-level windows for the injection target picker. There are // far fewer windows than processes, and a window maps directly to the HWND the // capturer wants, so this is the default (friendlier) way to pick a game. #pragma once #include #include namespace coop { struct WindowEntry { unsigned long pid = 0; // owning process id void* hwnd = nullptr; // HWND (opaque here to keep windows.h out of the header) std::wstring title; // window caption std::wstring exe_name; // owning process image base name, e.g. "game.exe" }; // Snapshot of the visible, titled, non-tool top-level (alt-tab-style) windows, with // our own process's windows excluded. Sorted by title (case-insensitive). std::vector list_windows(); } // namespace coop