#pragma once #include #include #include inline auto CreateCaptureItemForWindow(HWND hwnd) { auto activation_factory = winrt::get_activation_factory< winrt::Windows::Graphics::Capture::GraphicsCaptureItem>(); 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 hmonitor) { auto activation_factory = winrt::get_activation_factory< winrt::Windows::Graphics::Capture::GraphicsCaptureItem>(); auto interop_factory = activation_factory.as(); winrt::Windows::Graphics::Capture::GraphicsCaptureItem item = {nullptr}; interop_factory->CreateForMonitor( hmonitor, winrt::guid_of(), reinterpret_cast(winrt::put_abi(item))); return item; }