// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Devices_Perception_Provider_2_H #define WINRT_Windows_Devices_Perception_Provider_2_H #include "winrt/impl/Windows.Foundation.1.h" #include "winrt/impl/Windows.Foundation.Collections.1.h" #include "winrt/impl/Windows.Foundation.Numerics.1.h" #include "winrt/impl/Windows.Graphics.Imaging.1.h" #include "winrt/impl/Windows.Devices.Perception.Provider.1.h" WINRT_EXPORT namespace winrt::Windows::Devices::Perception::Provider { struct PerceptionStartFaceAuthenticationHandler : winrt::Windows::Foundation::IUnknown { PerceptionStartFaceAuthenticationHandler(std::nullptr_t = nullptr) noexcept {} PerceptionStartFaceAuthenticationHandler(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IUnknown(ptr, take_ownership_from_abi) {} template PerceptionStartFaceAuthenticationHandler(L lambda); template PerceptionStartFaceAuthenticationHandler(F* function); template PerceptionStartFaceAuthenticationHandler(O* object, M method); template PerceptionStartFaceAuthenticationHandler(com_ptr&& object, M method); template PerceptionStartFaceAuthenticationHandler(weak_ref&& object, LM&& lambda_or_method); template PerceptionStartFaceAuthenticationHandler(std::shared_ptr&& object, M method); template PerceptionStartFaceAuthenticationHandler(std::weak_ptr&& object, LM&& lambda_or_method); auto operator()(winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup const& sender) const; }; struct PerceptionStopFaceAuthenticationHandler : winrt::Windows::Foundation::IUnknown { PerceptionStopFaceAuthenticationHandler(std::nullptr_t = nullptr) noexcept {} PerceptionStopFaceAuthenticationHandler(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IUnknown(ptr, take_ownership_from_abi) {} template PerceptionStopFaceAuthenticationHandler(L lambda); template PerceptionStopFaceAuthenticationHandler(F* function); template PerceptionStopFaceAuthenticationHandler(O* object, M method); template PerceptionStopFaceAuthenticationHandler(com_ptr&& object, M method); template PerceptionStopFaceAuthenticationHandler(weak_ref&& object, LM&& lambda_or_method); template PerceptionStopFaceAuthenticationHandler(std::shared_ptr&& object, M method); template PerceptionStopFaceAuthenticationHandler(std::weak_ptr&& object, LM&& lambda_or_method); auto operator()(winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup const& sender) const; }; struct KnownPerceptionFrameKind { KnownPerceptionFrameKind() = delete; [[nodiscard]] static auto Color(); [[nodiscard]] static auto Depth(); [[nodiscard]] static auto Infrared(); }; struct WINRT_IMPL_EMPTY_BASES PerceptionControlGroup : winrt::Windows::Devices::Perception::Provider::IPerceptionControlGroup { PerceptionControlGroup(std::nullptr_t) noexcept {} PerceptionControlGroup(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Perception::Provider::IPerceptionControlGroup(ptr, take_ownership_from_abi) {} explicit PerceptionControlGroup(param::iterable const& ids); }; struct WINRT_IMPL_EMPTY_BASES PerceptionCorrelation : winrt::Windows::Devices::Perception::Provider::IPerceptionCorrelation { PerceptionCorrelation(std::nullptr_t) noexcept {} PerceptionCorrelation(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Perception::Provider::IPerceptionCorrelation(ptr, take_ownership_from_abi) {} PerceptionCorrelation(param::hstring const& targetId, winrt::Windows::Foundation::Numerics::float3 const& position, winrt::Windows::Foundation::Numerics::quaternion const& orientation); }; struct WINRT_IMPL_EMPTY_BASES PerceptionCorrelationGroup : winrt::Windows::Devices::Perception::Provider::IPerceptionCorrelationGroup { PerceptionCorrelationGroup(std::nullptr_t) noexcept {} PerceptionCorrelationGroup(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Perception::Provider::IPerceptionCorrelationGroup(ptr, take_ownership_from_abi) {} explicit PerceptionCorrelationGroup(param::iterable const& relativeLocations); }; struct WINRT_IMPL_EMPTY_BASES PerceptionFaceAuthenticationGroup : winrt::Windows::Devices::Perception::Provider::IPerceptionFaceAuthenticationGroup { PerceptionFaceAuthenticationGroup(std::nullptr_t) noexcept {} PerceptionFaceAuthenticationGroup(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Perception::Provider::IPerceptionFaceAuthenticationGroup(ptr, take_ownership_from_abi) {} PerceptionFaceAuthenticationGroup(param::iterable const& ids, winrt::Windows::Devices::Perception::Provider::PerceptionStartFaceAuthenticationHandler const& startHandler, winrt::Windows::Devices::Perception::Provider::PerceptionStopFaceAuthenticationHandler const& stopHandler); }; struct WINRT_IMPL_EMPTY_BASES PerceptionFrame : winrt::Windows::Devices::Perception::Provider::IPerceptionFrame { PerceptionFrame(std::nullptr_t) noexcept {} PerceptionFrame(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Perception::Provider::IPerceptionFrame(ptr, take_ownership_from_abi) {} }; struct WINRT_IMPL_EMPTY_BASES PerceptionFrameProviderInfo : winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo { PerceptionFrameProviderInfo(std::nullptr_t) noexcept {} PerceptionFrameProviderInfo(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo(ptr, take_ownership_from_abi) {} PerceptionFrameProviderInfo(); }; struct PerceptionFrameProviderManagerService { PerceptionFrameProviderManagerService() = delete; static auto RegisterFrameProviderInfo(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFrameProviderInfo const& frameProviderInfo); static auto UnregisterFrameProviderInfo(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFrameProviderInfo const& frameProviderInfo); static auto RegisterFaceAuthenticationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup const& faceAuthenticationGroup); static auto UnregisterFaceAuthenticationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup const& faceAuthenticationGroup); static auto RegisterControlGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionControlGroup const& controlGroup); static auto UnregisterControlGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionControlGroup const& controlGroup); static auto RegisterCorrelationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionCorrelationGroup const& correlationGroup); static auto UnregisterCorrelationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionCorrelationGroup const& correlationGroup); static auto UpdateAvailabilityForProvider(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider const& provider, bool available); static auto PublishFrameForProvider(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider const& provider, winrt::Windows::Devices::Perception::Provider::PerceptionFrame const& frame); }; struct WINRT_IMPL_EMPTY_BASES PerceptionPropertyChangeRequest : winrt::Windows::Devices::Perception::Provider::IPerceptionPropertyChangeRequest { PerceptionPropertyChangeRequest(std::nullptr_t) noexcept {} PerceptionPropertyChangeRequest(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Perception::Provider::IPerceptionPropertyChangeRequest(ptr, take_ownership_from_abi) {} }; struct WINRT_IMPL_EMPTY_BASES PerceptionVideoFrameAllocator : winrt::Windows::Devices::Perception::Provider::IPerceptionVideoFrameAllocator { PerceptionVideoFrameAllocator(std::nullptr_t) noexcept {} PerceptionVideoFrameAllocator(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Perception::Provider::IPerceptionVideoFrameAllocator(ptr, take_ownership_from_abi) {} PerceptionVideoFrameAllocator(uint32_t maxOutstandingFrameCountForWrite, winrt::Windows::Graphics::Imaging::BitmapPixelFormat const& format, winrt::Windows::Foundation::Size const& resolution, winrt::Windows::Graphics::Imaging::BitmapAlphaMode const& alpha); }; } #endif