#pragma once class VirtualDesktop { public: static VirtualDesktop& instance(); // IVirtualDesktopManager bool IsWindowOnCurrentDesktop(HWND window) const; std::vector GetWindowsFromCurrentDesktop() const; // registry GUID GetCurrentVirtualDesktopIdFromRegistry() const; std::optional> GetVirtualDesktopIdsFromRegistry() const; private: VirtualDesktop(); ~VirtualDesktop(); IVirtualDesktopManager* m_vdManager{nullptr}; std::optional> GetVirtualDesktopIdsFromRegistry(HKEY hKey) const; };