#pragma once #include #include #include #include inline auto CreateCaptureItemForWindow(HWND hwnd) { auto activation_factory = winrt::get_activation_factory(); auto interop_factory = activation_factory.as(); winrt::Windows::Graphics::Capture::GraphicsCaptureItem item = {nullptr}; interop_factory->CreateForWindow(hwnd, winrt::guid_of(), reinterpret_cast(winrt::put_abi(item))); return item; } inline auto CreateCaptureItemForMonitor(HMONITOR monitor) { auto activation_factory = winrt::get_activation_factory(); auto interop_factory = activation_factory.as(); winrt::Windows::Graphics::Capture::GraphicsCaptureItem item = {nullptr}; interop_factory->CreateForMonitor(monitor, winrt::guid_of(), reinterpret_cast(winrt::put_abi(item))); return item; }