// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15 #pragma once #ifndef WINRT_Windows_Devices_Perception_Provider_H #define WINRT_Windows_Devices_Perception_Provider_H #include "winrt/base.h" static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.240405.15"), "Mismatched C++/WinRT headers."); #define CPPWINRT_VERSION "2.0.240405.15" #include "winrt/Windows.Devices.Perception.h" #include "winrt/impl/Windows.Devices.Perception.2.h" #include "winrt/impl/Windows.Foundation.2.h" #include "winrt/impl/Windows.Foundation.Collections.2.h" #include "winrt/impl/Windows.Foundation.Numerics.2.h" #include "winrt/impl/Windows.Graphics.Imaging.2.h" #include "winrt/impl/Windows.Media.2.h" #include "winrt/impl/Windows.Devices.Perception.Provider.2.h" namespace winrt::impl { template auto consume_Windows_Devices_Perception_Provider_IKnownPerceptionFrameKindStatics::Color() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IKnownPerceptionFrameKindStatics)->get_Color(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IKnownPerceptionFrameKindStatics::Depth() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IKnownPerceptionFrameKindStatics)->get_Depth(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IKnownPerceptionFrameKindStatics::Infrared() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IKnownPerceptionFrameKindStatics)->get_Infrared(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionControlGroup::FrameProviderIds() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionControlGroup)->get_FrameProviderIds(&value)); return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionControlGroupFactory::Create(param::iterable const& ids) const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionControlGroupFactory)->Create(*(void**)(&ids), &result)); return winrt::Windows::Devices::Perception::Provider::PerceptionControlGroup{ result, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionCorrelation::TargetId() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionCorrelation)->get_TargetId(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionCorrelation::Position() const { winrt::Windows::Foundation::Numerics::float3 value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionCorrelation)->get_Position(put_abi(value))); return value; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionCorrelation::Orientation() const { winrt::Windows::Foundation::Numerics::quaternion value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionCorrelation)->get_Orientation(put_abi(value))); return value; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionCorrelationFactory::Create(param::hstring const& targetId, winrt::Windows::Foundation::Numerics::float3 const& position, winrt::Windows::Foundation::Numerics::quaternion const& orientation) const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionCorrelationFactory)->Create(*(void**)(&targetId), impl::bind_in(position), impl::bind_in(orientation), &result)); return winrt::Windows::Devices::Perception::Provider::PerceptionCorrelation{ result, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionCorrelationGroup::RelativeLocations() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionCorrelationGroup)->get_RelativeLocations(&value)); return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionCorrelationGroupFactory::Create(param::iterable const& relativeLocations) const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionCorrelationGroupFactory)->Create(*(void**)(&relativeLocations), &result)); return winrt::Windows::Devices::Perception::Provider::PerceptionCorrelationGroup{ result, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFaceAuthenticationGroup::FrameProviderIds() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFaceAuthenticationGroup)->get_FrameProviderIds(&value)); return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFaceAuthenticationGroupFactory::Create(param::iterable const& ids, winrt::Windows::Devices::Perception::Provider::PerceptionStartFaceAuthenticationHandler const& startHandler, winrt::Windows::Devices::Perception::Provider::PerceptionStopFaceAuthenticationHandler const& stopHandler) const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFaceAuthenticationGroupFactory)->Create(*(void**)(&ids), *(void**)(&startHandler), *(void**)(&stopHandler), &result)); return winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup{ result, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrame::RelativeTime() const { winrt::Windows::Foundation::TimeSpan value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrame)->get_RelativeTime(put_abi(value))); return value; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrame::RelativeTime(winrt::Windows::Foundation::TimeSpan const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrame)->put_RelativeTime(impl::bind_in(value))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrame::Properties() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrame)->get_Properties(&value)); return winrt::Windows::Foundation::Collections::ValueSet{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrame::FrameData() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrame)->get_FrameData(&value)); return winrt::Windows::Foundation::IMemoryBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProvider::FrameProviderInfo() const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider)->get_FrameProviderInfo(&result)); return winrt::Windows::Devices::Perception::Provider::PerceptionFrameProviderInfo{ result, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProvider::Available() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider)->get_Available(&value)); return value; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProvider::Properties() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider)->get_Properties(&value)); return winrt::Windows::Foundation::Collections::IPropertySet{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProvider::Start() const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider)->Start()); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProvider::Stop() const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider)->Stop()); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProvider::SetProperty(winrt::Windows::Devices::Perception::Provider::PerceptionPropertyChangeRequest const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider)->SetProperty(*(void**)(&value))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderInfo::Id() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo)->get_Id(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderInfo::Id(param::hstring const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo)->put_Id(*(void**)(&value))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderInfo::DisplayName() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo)->get_DisplayName(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderInfo::DisplayName(param::hstring const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo)->put_DisplayName(*(void**)(&value))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderInfo::DeviceKind() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo)->get_DeviceKind(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderInfo::DeviceKind(param::hstring const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo)->put_DeviceKind(*(void**)(&value))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderInfo::FrameKind() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo)->get_FrameKind(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderInfo::FrameKind(param::hstring const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo)->put_FrameKind(*(void**)(&value))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderInfo::Hidden() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo)->get_Hidden(&value)); return value; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderInfo::Hidden(bool value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderInfo)->put_Hidden(value)); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManager::GetFrameProvider(winrt::Windows::Devices::Perception::Provider::PerceptionFrameProviderInfo const& frameProviderInfo) const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager)->GetFrameProvider(*(void**)(&frameProviderInfo), &result)); return winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider{ result, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManagerServiceStatics::RegisterFrameProviderInfo(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFrameProviderInfo const& frameProviderInfo) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManagerServiceStatics)->RegisterFrameProviderInfo(*(void**)(&manager), *(void**)(&frameProviderInfo))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManagerServiceStatics::UnregisterFrameProviderInfo(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFrameProviderInfo const& frameProviderInfo) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManagerServiceStatics)->UnregisterFrameProviderInfo(*(void**)(&manager), *(void**)(&frameProviderInfo))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManagerServiceStatics::RegisterFaceAuthenticationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup const& faceAuthenticationGroup) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManagerServiceStatics)->RegisterFaceAuthenticationGroup(*(void**)(&manager), *(void**)(&faceAuthenticationGroup))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManagerServiceStatics::UnregisterFaceAuthenticationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup const& faceAuthenticationGroup) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManagerServiceStatics)->UnregisterFaceAuthenticationGroup(*(void**)(&manager), *(void**)(&faceAuthenticationGroup))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManagerServiceStatics::RegisterControlGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionControlGroup const& controlGroup) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManagerServiceStatics)->RegisterControlGroup(*(void**)(&manager), *(void**)(&controlGroup))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManagerServiceStatics::UnregisterControlGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionControlGroup const& controlGroup) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManagerServiceStatics)->UnregisterControlGroup(*(void**)(&manager), *(void**)(&controlGroup))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManagerServiceStatics::RegisterCorrelationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionCorrelationGroup const& correlationGroup) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManagerServiceStatics)->RegisterCorrelationGroup(*(void**)(&manager), *(void**)(&correlationGroup))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManagerServiceStatics::UnregisterCorrelationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionCorrelationGroup const& correlationGroup) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManagerServiceStatics)->UnregisterCorrelationGroup(*(void**)(&manager), *(void**)(&correlationGroup))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManagerServiceStatics::UpdateAvailabilityForProvider(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider const& provider, bool available) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManagerServiceStatics)->UpdateAvailabilityForProvider(*(void**)(&provider), available)); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionFrameProviderManagerServiceStatics::PublishFrameForProvider(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider const& provider, winrt::Windows::Devices::Perception::Provider::PerceptionFrame const& frame) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManagerServiceStatics)->PublishFrameForProvider(*(void**)(&provider), *(void**)(&frame))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionPropertyChangeRequest::Name() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionPropertyChangeRequest)->get_Name(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionPropertyChangeRequest::Value() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionPropertyChangeRequest)->get_Value(&value)); return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionPropertyChangeRequest::Status() const { winrt::Windows::Devices::Perception::PerceptionFrameSourcePropertyChangeStatus value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionPropertyChangeRequest)->get_Status(reinterpret_cast(&value))); return value; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionPropertyChangeRequest::Status(winrt::Windows::Devices::Perception::PerceptionFrameSourcePropertyChangeStatus const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionPropertyChangeRequest)->put_Status(static_cast(value))); } template auto consume_Windows_Devices_Perception_Provider_IPerceptionPropertyChangeRequest::GetDeferral() const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionPropertyChangeRequest)->GetDeferral(&result)); return winrt::Windows::Foundation::Deferral{ result, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionVideoFrameAllocator::AllocateFrame() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionVideoFrameAllocator)->AllocateFrame(&value)); return winrt::Windows::Devices::Perception::Provider::PerceptionFrame{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionVideoFrameAllocator::CopyFromVideoFrame(winrt::Windows::Media::VideoFrame const& frame) const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionVideoFrameAllocator)->CopyFromVideoFrame(*(void**)(&frame), &value)); return winrt::Windows::Devices::Perception::Provider::PerceptionFrame{ value, take_ownership_from_abi }; } template auto consume_Windows_Devices_Perception_Provider_IPerceptionVideoFrameAllocatorFactory::Create(uint32_t maxOutstandingFrameCountForWrite, winrt::Windows::Graphics::Imaging::BitmapPixelFormat const& format, winrt::Windows::Foundation::Size const& resolution, winrt::Windows::Graphics::Imaging::BitmapAlphaMode const& alpha) const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Devices::Perception::Provider::IPerceptionVideoFrameAllocatorFactory)->Create(maxOutstandingFrameCountForWrite, static_cast(format), impl::bind_in(resolution), static_cast(alpha), &result)); return winrt::Windows::Devices::Perception::Provider::PerceptionVideoFrameAllocator{ result, take_ownership_from_abi }; } template struct delegate final : implements_delegate { delegate(H&& handler) : implements_delegate(std::forward(handler)) {} int32_t __stdcall Invoke(void* sender, bool* result) noexcept final try { *result = detach_from((*this)(*reinterpret_cast(&sender))); return 0; } catch (...) { return to_hresult(); } }; template struct delegate final : implements_delegate { delegate(H&& handler) : implements_delegate(std::forward(handler)) {} int32_t __stdcall Invoke(void* sender) noexcept final try { (*this)(*reinterpret_cast(&sender)); return 0; } catch (...) { return to_hresult(); } }; #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Color(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Color()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Depth(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Depth()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Infrared(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Infrared()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_FrameProviderIds(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().FrameProviderIds()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall Create(void* ids, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().Create(*reinterpret_cast const*>(&ids))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_TargetId(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TargetId()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Position(winrt::Windows::Foundation::Numerics::float3* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Position()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Orientation(winrt::Windows::Foundation::Numerics::quaternion* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Orientation()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall Create(void* targetId, winrt::Windows::Foundation::Numerics::float3 position, winrt::Windows::Foundation::Numerics::quaternion orientation, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().Create(*reinterpret_cast(&targetId), *reinterpret_cast(&position), *reinterpret_cast(&orientation))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_RelativeLocations(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().RelativeLocations()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall Create(void* relativeLocations, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().Create(*reinterpret_cast const*>(&relativeLocations))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_FrameProviderIds(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().FrameProviderIds()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall Create(void* ids, void* startHandler, void* stopHandler, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().Create(*reinterpret_cast const*>(&ids), *reinterpret_cast(&startHandler), *reinterpret_cast(&stopHandler))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_RelativeTime(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RelativeTime()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_RelativeTime(int64_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().RelativeTime(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Properties(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Properties()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_FrameData(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().FrameData()); return 0; } catch (...) { return to_hresult(); } }; #endif template struct produce : produce_base { int32_t __stdcall get_FrameProviderInfo(void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().FrameProviderInfo()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Available(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Available()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Properties(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Properties()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall Start() noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Start(); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall Stop() noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Stop(); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall SetProperty(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().SetProperty(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } }; #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Id(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Id()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Id(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Id(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DisplayName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DisplayName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_DisplayName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().DisplayName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DeviceKind(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DeviceKind()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_DeviceKind(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().DeviceKind(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_FrameKind(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().FrameKind()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_FrameKind(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().FrameKind(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Hidden(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Hidden()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Hidden(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Hidden(value); return 0; } catch (...) { return to_hresult(); } }; #endif template struct produce : produce_base { int32_t __stdcall GetFrameProvider(void* frameProviderInfo, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().GetFrameProvider(*reinterpret_cast(&frameProviderInfo))); return 0; } catch (...) { return to_hresult(); } }; #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall RegisterFrameProviderInfo(void* manager, void* frameProviderInfo) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().RegisterFrameProviderInfo(*reinterpret_cast(&manager), *reinterpret_cast(&frameProviderInfo)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall UnregisterFrameProviderInfo(void* manager, void* frameProviderInfo) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().UnregisterFrameProviderInfo(*reinterpret_cast(&manager), *reinterpret_cast(&frameProviderInfo)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall RegisterFaceAuthenticationGroup(void* manager, void* faceAuthenticationGroup) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().RegisterFaceAuthenticationGroup(*reinterpret_cast(&manager), *reinterpret_cast(&faceAuthenticationGroup)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall UnregisterFaceAuthenticationGroup(void* manager, void* faceAuthenticationGroup) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().UnregisterFaceAuthenticationGroup(*reinterpret_cast(&manager), *reinterpret_cast(&faceAuthenticationGroup)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall RegisterControlGroup(void* manager, void* controlGroup) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().RegisterControlGroup(*reinterpret_cast(&manager), *reinterpret_cast(&controlGroup)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall UnregisterControlGroup(void* manager, void* controlGroup) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().UnregisterControlGroup(*reinterpret_cast(&manager), *reinterpret_cast(&controlGroup)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall RegisterCorrelationGroup(void* manager, void* correlationGroup) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().RegisterCorrelationGroup(*reinterpret_cast(&manager), *reinterpret_cast(&correlationGroup)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall UnregisterCorrelationGroup(void* manager, void* correlationGroup) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().UnregisterCorrelationGroup(*reinterpret_cast(&manager), *reinterpret_cast(&correlationGroup)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall UpdateAvailabilityForProvider(void* provider, bool available) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().UpdateAvailabilityForProvider(*reinterpret_cast(&provider), available); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall PublishFrameForProvider(void* provider, void* frame) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().PublishFrameForProvider(*reinterpret_cast(&provider), *reinterpret_cast(&frame)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Name(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Name()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Value(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Value()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Status(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Status()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Status(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Status(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetDeferral(void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().GetDeferral()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall AllocateFrame(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AllocateFrame()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CopyFromVideoFrame(void* frame, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CopyFromVideoFrame(*reinterpret_cast(&frame))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall Create(uint32_t maxOutstandingFrameCountForWrite, int32_t format, winrt::Windows::Foundation::Size resolution, int32_t alpha, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().Create(maxOutstandingFrameCountForWrite, *reinterpret_cast(&format), *reinterpret_cast(&resolution), *reinterpret_cast(&alpha))); return 0; } catch (...) { return to_hresult(); } }; #endif } WINRT_EXPORT namespace winrt::Windows::Devices::Perception::Provider { inline auto KnownPerceptionFrameKind::Color() { return impl::call_factory_cast([](IKnownPerceptionFrameKindStatics const& f) { return f.Color(); }); } inline auto KnownPerceptionFrameKind::Depth() { return impl::call_factory_cast([](IKnownPerceptionFrameKindStatics const& f) { return f.Depth(); }); } inline auto KnownPerceptionFrameKind::Infrared() { return impl::call_factory_cast([](IKnownPerceptionFrameKindStatics const& f) { return f.Infrared(); }); } inline PerceptionControlGroup::PerceptionControlGroup(param::iterable const& ids) : PerceptionControlGroup(impl::call_factory([&](IPerceptionControlGroupFactory const& f) { return f.Create(ids); })) { } inline PerceptionCorrelation::PerceptionCorrelation(param::hstring const& targetId, winrt::Windows::Foundation::Numerics::float3 const& position, winrt::Windows::Foundation::Numerics::quaternion const& orientation) : PerceptionCorrelation(impl::call_factory([&](IPerceptionCorrelationFactory const& f) { return f.Create(targetId, position, orientation); })) { } inline PerceptionCorrelationGroup::PerceptionCorrelationGroup(param::iterable const& relativeLocations) : PerceptionCorrelationGroup(impl::call_factory([&](IPerceptionCorrelationGroupFactory const& f) { return f.Create(relativeLocations); })) { } inline PerceptionFaceAuthenticationGroup::PerceptionFaceAuthenticationGroup(param::iterable const& ids, winrt::Windows::Devices::Perception::Provider::PerceptionStartFaceAuthenticationHandler const& startHandler, winrt::Windows::Devices::Perception::Provider::PerceptionStopFaceAuthenticationHandler const& stopHandler) : PerceptionFaceAuthenticationGroup(impl::call_factory([&](IPerceptionFaceAuthenticationGroupFactory const& f) { return f.Create(ids, startHandler, stopHandler); })) { } inline PerceptionFrameProviderInfo::PerceptionFrameProviderInfo() : PerceptionFrameProviderInfo(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline auto PerceptionFrameProviderManagerService::RegisterFrameProviderInfo(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFrameProviderInfo const& frameProviderInfo) { impl::call_factory([&](IPerceptionFrameProviderManagerServiceStatics const& f) { return f.RegisterFrameProviderInfo(manager, frameProviderInfo); }); } inline auto PerceptionFrameProviderManagerService::UnregisterFrameProviderInfo(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFrameProviderInfo const& frameProviderInfo) { impl::call_factory([&](IPerceptionFrameProviderManagerServiceStatics const& f) { return f.UnregisterFrameProviderInfo(manager, frameProviderInfo); }); } inline auto PerceptionFrameProviderManagerService::RegisterFaceAuthenticationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup const& faceAuthenticationGroup) { impl::call_factory([&](IPerceptionFrameProviderManagerServiceStatics const& f) { return f.RegisterFaceAuthenticationGroup(manager, faceAuthenticationGroup); }); } inline auto PerceptionFrameProviderManagerService::UnregisterFaceAuthenticationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup const& faceAuthenticationGroup) { impl::call_factory([&](IPerceptionFrameProviderManagerServiceStatics const& f) { return f.UnregisterFaceAuthenticationGroup(manager, faceAuthenticationGroup); }); } inline auto PerceptionFrameProviderManagerService::RegisterControlGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionControlGroup const& controlGroup) { impl::call_factory([&](IPerceptionFrameProviderManagerServiceStatics const& f) { return f.RegisterControlGroup(manager, controlGroup); }); } inline auto PerceptionFrameProviderManagerService::UnregisterControlGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionControlGroup const& controlGroup) { impl::call_factory([&](IPerceptionFrameProviderManagerServiceStatics const& f) { return f.UnregisterControlGroup(manager, controlGroup); }); } inline auto PerceptionFrameProviderManagerService::RegisterCorrelationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionCorrelationGroup const& correlationGroup) { impl::call_factory([&](IPerceptionFrameProviderManagerServiceStatics const& f) { return f.RegisterCorrelationGroup(manager, correlationGroup); }); } inline auto PerceptionFrameProviderManagerService::UnregisterCorrelationGroup(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProviderManager const& manager, winrt::Windows::Devices::Perception::Provider::PerceptionCorrelationGroup const& correlationGroup) { impl::call_factory([&](IPerceptionFrameProviderManagerServiceStatics const& f) { return f.UnregisterCorrelationGroup(manager, correlationGroup); }); } inline auto PerceptionFrameProviderManagerService::UpdateAvailabilityForProvider(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider const& provider, bool available) { impl::call_factory([&](IPerceptionFrameProviderManagerServiceStatics const& f) { return f.UpdateAvailabilityForProvider(provider, available); }); } inline auto PerceptionFrameProviderManagerService::PublishFrameForProvider(winrt::Windows::Devices::Perception::Provider::IPerceptionFrameProvider const& provider, winrt::Windows::Devices::Perception::Provider::PerceptionFrame const& frame) { impl::call_factory([&](IPerceptionFrameProviderManagerServiceStatics const& f) { return f.PublishFrameForProvider(provider, frame); }); } inline PerceptionVideoFrameAllocator::PerceptionVideoFrameAllocator(uint32_t maxOutstandingFrameCountForWrite, winrt::Windows::Graphics::Imaging::BitmapPixelFormat const& format, winrt::Windows::Foundation::Size const& resolution, winrt::Windows::Graphics::Imaging::BitmapAlphaMode const& alpha) : PerceptionVideoFrameAllocator(impl::call_factory([&](IPerceptionVideoFrameAllocatorFactory const& f) { return f.Create(maxOutstandingFrameCountForWrite, format, resolution, alpha); })) { } template PerceptionStartFaceAuthenticationHandler::PerceptionStartFaceAuthenticationHandler(L handler) : PerceptionStartFaceAuthenticationHandler(impl::make_delegate(std::forward(handler))) { } template PerceptionStartFaceAuthenticationHandler::PerceptionStartFaceAuthenticationHandler(F* handler) : PerceptionStartFaceAuthenticationHandler([=](auto&&... args) { return handler(args...); }) { } template PerceptionStartFaceAuthenticationHandler::PerceptionStartFaceAuthenticationHandler(O* object, M method) : PerceptionStartFaceAuthenticationHandler([=](auto&&... args) { return ((*object).*(method))(args...); }) { } template PerceptionStartFaceAuthenticationHandler::PerceptionStartFaceAuthenticationHandler(com_ptr&& object, M method) : PerceptionStartFaceAuthenticationHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template PerceptionStartFaceAuthenticationHandler::PerceptionStartFaceAuthenticationHandler(weak_ref&& object, LM&& lambda_or_method) : PerceptionStartFaceAuthenticationHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.get()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } template PerceptionStartFaceAuthenticationHandler::PerceptionStartFaceAuthenticationHandler(std::shared_ptr&& object, M method) : PerceptionStartFaceAuthenticationHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template PerceptionStartFaceAuthenticationHandler::PerceptionStartFaceAuthenticationHandler(std::weak_ptr&& object, LM&& lambda_or_method) : PerceptionStartFaceAuthenticationHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } inline auto PerceptionStartFaceAuthenticationHandler::operator()(winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup const& sender) const { bool result{}; check_hresult((*(impl::abi_t**)this)->Invoke(*(void**)(&sender), &result)); return result; } template PerceptionStopFaceAuthenticationHandler::PerceptionStopFaceAuthenticationHandler(L handler) : PerceptionStopFaceAuthenticationHandler(impl::make_delegate(std::forward(handler))) { } template PerceptionStopFaceAuthenticationHandler::PerceptionStopFaceAuthenticationHandler(F* handler) : PerceptionStopFaceAuthenticationHandler([=](auto&&... args) { return handler(args...); }) { } template PerceptionStopFaceAuthenticationHandler::PerceptionStopFaceAuthenticationHandler(O* object, M method) : PerceptionStopFaceAuthenticationHandler([=](auto&&... args) { return ((*object).*(method))(args...); }) { } template PerceptionStopFaceAuthenticationHandler::PerceptionStopFaceAuthenticationHandler(com_ptr&& object, M method) : PerceptionStopFaceAuthenticationHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template PerceptionStopFaceAuthenticationHandler::PerceptionStopFaceAuthenticationHandler(weak_ref&& object, LM&& lambda_or_method) : PerceptionStopFaceAuthenticationHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.get()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } template PerceptionStopFaceAuthenticationHandler::PerceptionStopFaceAuthenticationHandler(std::shared_ptr&& object, M method) : PerceptionStopFaceAuthenticationHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); }) { } template PerceptionStopFaceAuthenticationHandler::PerceptionStopFaceAuthenticationHandler(std::weak_ptr&& object, LM&& lambda_or_method) : PerceptionStopFaceAuthenticationHandler([o = std::move(object), lm = std::forward(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) { if constexpr (std::is_member_function_pointer_v) ((*s).*(lm))(args...); else lm(args...); } }) { } inline auto PerceptionStopFaceAuthenticationHandler::operator()(winrt::Windows::Devices::Perception::Provider::PerceptionFaceAuthenticationGroup const& sender) const { check_hresult((*(impl::abi_t**)this)->Invoke(*(void**)(&sender))); } } namespace std { #ifndef WINRT_LEAN_AND_MEAN template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; #endif #ifdef __cpp_lib_format #endif } #endif