mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
28 lines
1.2 KiB
C
28 lines
1.2 KiB
C
#pragma once
|
|
#include <windows.graphics.capture.h>
|
|
#include <windows.graphics.capture.interop.h>
|
|
#include <winrt/Windows.Graphics.Capture.h>
|
|
|
|
inline auto CreateCaptureItemForWindow(HWND hwnd) {
|
|
auto activation_factory = winrt::get_activation_factory<
|
|
winrt::Windows::Graphics::Capture::GraphicsCaptureItem>();
|
|
auto interop_factory = activation_factory.as<IGraphicsCaptureItemInterop>();
|
|
winrt::Windows::Graphics::Capture::GraphicsCaptureItem item = {nullptr};
|
|
interop_factory->CreateForWindow(
|
|
hwnd,
|
|
winrt::guid_of<ABI::Windows::Graphics::Capture::IGraphicsCaptureItem>(),
|
|
reinterpret_cast<void **>(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<IGraphicsCaptureItemInterop>();
|
|
winrt::Windows::Graphics::Capture::GraphicsCaptureItem item = {nullptr};
|
|
interop_factory->CreateForMonitor(
|
|
hmonitor,
|
|
winrt::guid_of<ABI::Windows::Graphics::Capture::IGraphicsCaptureItem>(),
|
|
reinterpret_cast<void **>(winrt::put_abi(item)));
|
|
return item;
|
|
} |