// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_UI_Input_Preview_Injection_H #define WINRT_Windows_UI_Input_Preview_Injection_H #include "winrt/base.h" static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.250303.1"), "Mismatched C++/WinRT headers."); #define CPPWINRT_VERSION "2.0.250303.1" #include "winrt/Windows.UI.Input.Preview.h" #include "winrt/impl/Windows.Foundation.Collections.2.h" #include "winrt/impl/Windows.Gaming.Input.2.h" #include "winrt/impl/Windows.UI.Input.Preview.Injection.2.h" namespace winrt::impl { template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::Buttons() const { winrt::Windows::Gaming::Input::GamepadButtons value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Buttons(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Buttons(reinterpret_cast(&value))); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::Buttons(winrt::Windows::Gaming::Input::GamepadButtons const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Buttons(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Buttons(static_cast(value))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::LeftThumbstickX() const { double value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_LeftThumbstickX(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_LeftThumbstickX(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::LeftThumbstickX(double value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_LeftThumbstickX(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_LeftThumbstickX(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::LeftThumbstickY() const { double value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_LeftThumbstickY(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_LeftThumbstickY(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::LeftThumbstickY(double value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_LeftThumbstickY(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_LeftThumbstickY(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::LeftTrigger() const { double value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_LeftTrigger(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_LeftTrigger(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::LeftTrigger(double value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_LeftTrigger(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_LeftTrigger(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::RightThumbstickX() const { double value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RightThumbstickX(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RightThumbstickX(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::RightThumbstickX(double value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_RightThumbstickX(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_RightThumbstickX(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::RightThumbstickY() const { double value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RightThumbstickY(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RightThumbstickY(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::RightThumbstickY(double value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_RightThumbstickY(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_RightThumbstickY(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::RightTrigger() const { double value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RightTrigger(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RightTrigger(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfo::RightTrigger(double value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_RightTrigger(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_RightTrigger(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputGamepadInfoFactory::CreateInstance(winrt::Windows::Gaming::Input::GamepadReading const& reading) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateInstanceFromGamepadReading(impl::bind_in(reading), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateInstanceFromGamepadReading(impl::bind_in(reading), &value)); } return winrt::Windows::UI::Input::Preview::Injection::InjectedInputGamepadInfo{ value, take_ownership_from_abi }; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputKeyboardInfo::KeyOptions() const { winrt::Windows::UI::Input::Preview::Injection::InjectedInputKeyOptions value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyOptions(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyOptions(reinterpret_cast(&value))); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputKeyboardInfo::KeyOptions(winrt::Windows::UI::Input::Preview::Injection::InjectedInputKeyOptions const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeyOptions(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeyOptions(static_cast(value))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputKeyboardInfo::ScanCode() const { uint16_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ScanCode(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ScanCode(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputKeyboardInfo::ScanCode(uint16_t value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_ScanCode(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_ScanCode(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputKeyboardInfo::VirtualKey() const { uint16_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_VirtualKey(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_VirtualKey(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputKeyboardInfo::VirtualKey(uint16_t value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_VirtualKey(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_VirtualKey(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputMouseInfo::MouseOptions() const { winrt::Windows::UI::Input::Preview::Injection::InjectedInputMouseOptions value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_MouseOptions(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_MouseOptions(reinterpret_cast(&value))); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputMouseInfo::MouseOptions(winrt::Windows::UI::Input::Preview::Injection::InjectedInputMouseOptions const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_MouseOptions(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_MouseOptions(static_cast(value))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputMouseInfo::MouseData() const { uint32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_MouseData(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_MouseData(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputMouseInfo::MouseData(uint32_t value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_MouseData(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_MouseData(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputMouseInfo::DeltaY() const { int32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DeltaY(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DeltaY(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputMouseInfo::DeltaY(int32_t value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_DeltaY(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_DeltaY(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputMouseInfo::DeltaX() const { int32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DeltaX(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DeltaX(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputMouseInfo::DeltaX(int32_t value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_DeltaX(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_DeltaX(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputMouseInfo::TimeOffsetInMilliseconds() const { uint32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TimeOffsetInMilliseconds(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TimeOffsetInMilliseconds(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputMouseInfo::TimeOffsetInMilliseconds(uint32_t value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_TimeOffsetInMilliseconds(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_TimeOffsetInMilliseconds(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::PointerInfo() const { winrt::Windows::UI::Input::Preview::Injection::InjectedInputPointerInfo value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_PointerInfo(put_abi(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_PointerInfo(put_abi(value))); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::PointerInfo(winrt::Windows::UI::Input::Preview::Injection::InjectedInputPointerInfo const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_PointerInfo(impl::bind_in(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_PointerInfo(impl::bind_in(value))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::PenButtons() const { winrt::Windows::UI::Input::Preview::Injection::InjectedInputPenButtons value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_PenButtons(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_PenButtons(reinterpret_cast(&value))); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::PenButtons(winrt::Windows::UI::Input::Preview::Injection::InjectedInputPenButtons const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_PenButtons(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_PenButtons(static_cast(value))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::PenParameters() const { winrt::Windows::UI::Input::Preview::Injection::InjectedInputPenParameters value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_PenParameters(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_PenParameters(reinterpret_cast(&value))); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::PenParameters(winrt::Windows::UI::Input::Preview::Injection::InjectedInputPenParameters const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_PenParameters(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_PenParameters(static_cast(value))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::Pressure() const { double value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Pressure(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Pressure(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::Pressure(double value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Pressure(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Pressure(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::Rotation() const { double value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Rotation(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Rotation(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::Rotation(double value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Rotation(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Rotation(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::TiltX() const { int32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TiltX(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TiltX(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::TiltX(int32_t value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_TiltX(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_TiltX(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::TiltY() const { int32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TiltY(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TiltY(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputPenInfo::TiltY(int32_t value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_TiltY(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_TiltY(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputTouchInfo::Contact() const { winrt::Windows::UI::Input::Preview::Injection::InjectedInputRectangle value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Contact(put_abi(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Contact(put_abi(value))); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputTouchInfo::Contact(winrt::Windows::UI::Input::Preview::Injection::InjectedInputRectangle const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Contact(impl::bind_in(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Contact(impl::bind_in(value))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputTouchInfo::Orientation() const { int32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Orientation(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Orientation(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputTouchInfo::Orientation(int32_t value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Orientation(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Orientation(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputTouchInfo::PointerInfo() const { winrt::Windows::UI::Input::Preview::Injection::InjectedInputPointerInfo value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_PointerInfo(put_abi(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_PointerInfo(put_abi(value))); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputTouchInfo::PointerInfo(winrt::Windows::UI::Input::Preview::Injection::InjectedInputPointerInfo const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_PointerInfo(impl::bind_in(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_PointerInfo(impl::bind_in(value))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputTouchInfo::Pressure() const { double value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Pressure(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Pressure(&value)); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputTouchInfo::Pressure(double value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Pressure(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Pressure(value)); } } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputTouchInfo::TouchParameters() const { winrt::Windows::UI::Input::Preview::Injection::InjectedInputTouchParameters value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TouchParameters(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TouchParameters(reinterpret_cast(&value))); } return value; } template auto consume_Windows_UI_Input_Preview_Injection_IInjectedInputTouchInfo::TouchParameters(winrt::Windows::UI::Input::Preview::Injection::InjectedInputTouchParameters const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_TouchParameters(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_TouchParameters(static_cast(value))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector::InjectKeyboardInput(param::iterable const& input) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InjectKeyboardInput(*(void**)(&input))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InjectKeyboardInput(*(void**)(&input))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector::InjectMouseInput(param::iterable const& input) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InjectMouseInput(*(void**)(&input))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InjectMouseInput(*(void**)(&input))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector::InitializeTouchInjection(winrt::Windows::UI::Input::Preview::Injection::InjectedInputVisualizationMode const& visualMode) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InitializeTouchInjection(static_cast(visualMode))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InitializeTouchInjection(static_cast(visualMode))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector::InjectTouchInput(param::iterable const& input) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InjectTouchInput(*(void**)(&input))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InjectTouchInput(*(void**)(&input))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector::UninitializeTouchInjection() const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->UninitializeTouchInjection()); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->UninitializeTouchInjection()); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector::InitializePenInjection(winrt::Windows::UI::Input::Preview::Injection::InjectedInputVisualizationMode const& visualMode) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InitializePenInjection(static_cast(visualMode))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InitializePenInjection(static_cast(visualMode))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector::InjectPenInput(winrt::Windows::UI::Input::Preview::Injection::InjectedInputPenInfo const& input) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InjectPenInput(*(void**)(&input))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InjectPenInput(*(void**)(&input))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector::UninitializePenInjection() const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->UninitializePenInjection()); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->UninitializePenInjection()); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector::InjectShortcut(winrt::Windows::UI::Input::Preview::Injection::InjectedInputShortcut const& shortcut) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InjectShortcut(static_cast(shortcut))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InjectShortcut(static_cast(shortcut))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector2::InitializeGamepadInjection() const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InitializeGamepadInjection()); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InitializeGamepadInjection()); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector2::InjectGamepadInput(winrt::Windows::UI::Input::Preview::Injection::InjectedInputGamepadInfo const& input) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InjectGamepadInput(*(void**)(&input))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InjectGamepadInput(*(void**)(&input))); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjector2::UninitializeGamepadInjection() const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->UninitializeGamepadInjection()); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->UninitializeGamepadInjection()); } } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjectorStatics::TryCreate() const { void* instance{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->TryCreate(&instance)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->TryCreate(&instance)); } return winrt::Windows::UI::Input::Preview::Injection::InputInjector{ instance, take_ownership_from_abi }; } template auto consume_Windows_UI_Input_Preview_Injection_IInputInjectorStatics2::TryCreateForAppBroadcastOnly() const { void* instance{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->TryCreateForAppBroadcastOnly(&instance)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->TryCreateForAppBroadcastOnly(&instance)); } return winrt::Windows::UI::Input::Preview::Injection::InputInjector{ instance, take_ownership_from_abi }; } #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Buttons(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Buttons()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Buttons(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Buttons(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_LeftThumbstickX(double* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().LeftThumbstickX()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_LeftThumbstickX(double value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().LeftThumbstickX(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_LeftThumbstickY(double* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().LeftThumbstickY()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_LeftThumbstickY(double value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().LeftThumbstickY(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_LeftTrigger(double* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().LeftTrigger()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_LeftTrigger(double value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().LeftTrigger(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RightThumbstickX(double* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RightThumbstickX()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_RightThumbstickX(double value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().RightThumbstickX(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RightThumbstickY(double* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RightThumbstickY()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_RightThumbstickY(double value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().RightThumbstickY(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RightTrigger(double* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RightTrigger()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_RightTrigger(double value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().RightTrigger(value); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateInstanceFromGamepadReading(struct struct_Windows_Gaming_Input_GamepadReading reading, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CreateInstance(*reinterpret_cast(&reading))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_KeyOptions(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyOptions()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeyOptions(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeyOptions(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ScanCode(uint16_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ScanCode()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_ScanCode(uint16_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().ScanCode(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_VirtualKey(uint16_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().VirtualKey()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_VirtualKey(uint16_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().VirtualKey(value); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_MouseOptions(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MouseOptions()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_MouseOptions(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().MouseOptions(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MouseData(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MouseData()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_MouseData(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().MouseData(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DeltaY(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DeltaY()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_DeltaY(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().DeltaY(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DeltaX(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DeltaX()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_DeltaX(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().DeltaX(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TimeOffsetInMilliseconds(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TimeOffsetInMilliseconds()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_TimeOffsetInMilliseconds(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().TimeOffsetInMilliseconds(value); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_PointerInfo(struct struct_Windows_UI_Input_Preview_Injection_InjectedInputPointerInfo* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PointerInfo()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_PointerInfo(struct struct_Windows_UI_Input_Preview_Injection_InjectedInputPointerInfo value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().PointerInfo(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PenButtons(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PenButtons()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_PenButtons(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().PenButtons(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PenParameters(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PenParameters()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_PenParameters(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().PenParameters(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Pressure(double* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Pressure()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Pressure(double value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Pressure(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Rotation(double* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Rotation()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Rotation(double value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Rotation(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TiltX(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TiltX()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_TiltX(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().TiltX(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TiltY(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TiltY()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_TiltY(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().TiltY(value); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Contact(struct struct_Windows_UI_Input_Preview_Injection_InjectedInputRectangle* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Contact()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Contact(struct struct_Windows_UI_Input_Preview_Injection_InjectedInputRectangle value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Contact(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Orientation(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Orientation()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Orientation(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Orientation(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PointerInfo(struct struct_Windows_UI_Input_Preview_Injection_InjectedInputPointerInfo* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PointerInfo()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_PointerInfo(struct struct_Windows_UI_Input_Preview_Injection_InjectedInputPointerInfo value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().PointerInfo(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Pressure(double* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Pressure()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Pressure(double value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Pressure(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TouchParameters(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TouchParameters()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_TouchParameters(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().TouchParameters(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall InjectKeyboardInput(void* input) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().InjectKeyboardInput(*reinterpret_cast const*>(&input)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall InjectMouseInput(void* input) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().InjectMouseInput(*reinterpret_cast const*>(&input)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall InitializeTouchInjection(int32_t visualMode) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().InitializeTouchInjection(*reinterpret_cast(&visualMode)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall InjectTouchInput(void* input) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().InjectTouchInput(*reinterpret_cast const*>(&input)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall UninitializeTouchInjection() noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().UninitializeTouchInjection(); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall InitializePenInjection(int32_t visualMode) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().InitializePenInjection(*reinterpret_cast(&visualMode)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall InjectPenInput(void* input) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().InjectPenInput(*reinterpret_cast(&input)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall UninitializePenInjection() noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().UninitializePenInjection(); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall InjectShortcut(int32_t shortcut) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().InjectShortcut(*reinterpret_cast(&shortcut)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall InitializeGamepadInjection() noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().InitializeGamepadInjection(); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall InjectGamepadInput(void* input) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().InjectGamepadInput(*reinterpret_cast(&input)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall UninitializeGamepadInjection() noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().UninitializeGamepadInjection(); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall TryCreate(void** instance) noexcept final try { clear_abi(instance); typename D::abi_guard guard(this->shim()); *instance = detach_from(this->shim().TryCreate()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall TryCreateForAppBroadcastOnly(void** instance) noexcept final try { clear_abi(instance); typename D::abi_guard guard(this->shim()); *instance = detach_from(this->shim().TryCreateForAppBroadcastOnly()); return 0; } catch (...) { return to_hresult(); } }; #endif } WINRT_EXPORT namespace winrt::Windows::UI::Input::Preview::Injection { constexpr auto operator|(InjectedInputKeyOptions const left, InjectedInputKeyOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) | impl::to_underlying_type(right)); } constexpr auto operator|=(InjectedInputKeyOptions& left, InjectedInputKeyOptions const right) noexcept { left = left | right; return left; } constexpr auto operator&(InjectedInputKeyOptions const left, InjectedInputKeyOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) & impl::to_underlying_type(right)); } constexpr auto operator&=(InjectedInputKeyOptions& left, InjectedInputKeyOptions const right) noexcept { left = left & right; return left; } constexpr auto operator~(InjectedInputKeyOptions const value) noexcept { return static_cast(~impl::to_underlying_type(value)); } constexpr auto operator^(InjectedInputKeyOptions const left, InjectedInputKeyOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) ^ impl::to_underlying_type(right)); } constexpr auto operator^=(InjectedInputKeyOptions& left, InjectedInputKeyOptions const right) noexcept { left = left ^ right; return left; } constexpr auto operator|(InjectedInputMouseOptions const left, InjectedInputMouseOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) | impl::to_underlying_type(right)); } constexpr auto operator|=(InjectedInputMouseOptions& left, InjectedInputMouseOptions const right) noexcept { left = left | right; return left; } constexpr auto operator&(InjectedInputMouseOptions const left, InjectedInputMouseOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) & impl::to_underlying_type(right)); } constexpr auto operator&=(InjectedInputMouseOptions& left, InjectedInputMouseOptions const right) noexcept { left = left & right; return left; } constexpr auto operator~(InjectedInputMouseOptions const value) noexcept { return static_cast(~impl::to_underlying_type(value)); } constexpr auto operator^(InjectedInputMouseOptions const left, InjectedInputMouseOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) ^ impl::to_underlying_type(right)); } constexpr auto operator^=(InjectedInputMouseOptions& left, InjectedInputMouseOptions const right) noexcept { left = left ^ right; return left; } constexpr auto operator|(InjectedInputPenButtons const left, InjectedInputPenButtons const right) noexcept { return static_cast(impl::to_underlying_type(left) | impl::to_underlying_type(right)); } constexpr auto operator|=(InjectedInputPenButtons& left, InjectedInputPenButtons const right) noexcept { left = left | right; return left; } constexpr auto operator&(InjectedInputPenButtons const left, InjectedInputPenButtons const right) noexcept { return static_cast(impl::to_underlying_type(left) & impl::to_underlying_type(right)); } constexpr auto operator&=(InjectedInputPenButtons& left, InjectedInputPenButtons const right) noexcept { left = left & right; return left; } constexpr auto operator~(InjectedInputPenButtons const value) noexcept { return static_cast(~impl::to_underlying_type(value)); } constexpr auto operator^(InjectedInputPenButtons const left, InjectedInputPenButtons const right) noexcept { return static_cast(impl::to_underlying_type(left) ^ impl::to_underlying_type(right)); } constexpr auto operator^=(InjectedInputPenButtons& left, InjectedInputPenButtons const right) noexcept { left = left ^ right; return left; } constexpr auto operator|(InjectedInputPenParameters const left, InjectedInputPenParameters const right) noexcept { return static_cast(impl::to_underlying_type(left) | impl::to_underlying_type(right)); } constexpr auto operator|=(InjectedInputPenParameters& left, InjectedInputPenParameters const right) noexcept { left = left | right; return left; } constexpr auto operator&(InjectedInputPenParameters const left, InjectedInputPenParameters const right) noexcept { return static_cast(impl::to_underlying_type(left) & impl::to_underlying_type(right)); } constexpr auto operator&=(InjectedInputPenParameters& left, InjectedInputPenParameters const right) noexcept { left = left & right; return left; } constexpr auto operator~(InjectedInputPenParameters const value) noexcept { return static_cast(~impl::to_underlying_type(value)); } constexpr auto operator^(InjectedInputPenParameters const left, InjectedInputPenParameters const right) noexcept { return static_cast(impl::to_underlying_type(left) ^ impl::to_underlying_type(right)); } constexpr auto operator^=(InjectedInputPenParameters& left, InjectedInputPenParameters const right) noexcept { left = left ^ right; return left; } constexpr auto operator|(InjectedInputPointerOptions const left, InjectedInputPointerOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) | impl::to_underlying_type(right)); } constexpr auto operator|=(InjectedInputPointerOptions& left, InjectedInputPointerOptions const right) noexcept { left = left | right; return left; } constexpr auto operator&(InjectedInputPointerOptions const left, InjectedInputPointerOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) & impl::to_underlying_type(right)); } constexpr auto operator&=(InjectedInputPointerOptions& left, InjectedInputPointerOptions const right) noexcept { left = left & right; return left; } constexpr auto operator~(InjectedInputPointerOptions const value) noexcept { return static_cast(~impl::to_underlying_type(value)); } constexpr auto operator^(InjectedInputPointerOptions const left, InjectedInputPointerOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) ^ impl::to_underlying_type(right)); } constexpr auto operator^=(InjectedInputPointerOptions& left, InjectedInputPointerOptions const right) noexcept { left = left ^ right; return left; } constexpr auto operator|(InjectedInputTouchParameters const left, InjectedInputTouchParameters const right) noexcept { return static_cast(impl::to_underlying_type(left) | impl::to_underlying_type(right)); } constexpr auto operator|=(InjectedInputTouchParameters& left, InjectedInputTouchParameters const right) noexcept { left = left | right; return left; } constexpr auto operator&(InjectedInputTouchParameters const left, InjectedInputTouchParameters const right) noexcept { return static_cast(impl::to_underlying_type(left) & impl::to_underlying_type(right)); } constexpr auto operator&=(InjectedInputTouchParameters& left, InjectedInputTouchParameters const right) noexcept { left = left & right; return left; } constexpr auto operator~(InjectedInputTouchParameters const value) noexcept { return static_cast(~impl::to_underlying_type(value)); } constexpr auto operator^(InjectedInputTouchParameters const left, InjectedInputTouchParameters const right) noexcept { return static_cast(impl::to_underlying_type(left) ^ impl::to_underlying_type(right)); } constexpr auto operator^=(InjectedInputTouchParameters& left, InjectedInputTouchParameters const right) noexcept { left = left ^ right; return left; } inline InjectedInputGamepadInfo::InjectedInputGamepadInfo() : InjectedInputGamepadInfo(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline InjectedInputGamepadInfo::InjectedInputGamepadInfo(winrt::Windows::Gaming::Input::GamepadReading const& reading) : InjectedInputGamepadInfo(impl::call_factory([&](IInjectedInputGamepadInfoFactory const& f) { return f.CreateInstance(reading); })) { } inline InjectedInputKeyboardInfo::InjectedInputKeyboardInfo() : InjectedInputKeyboardInfo(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline InjectedInputMouseInfo::InjectedInputMouseInfo() : InjectedInputMouseInfo(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline InjectedInputPenInfo::InjectedInputPenInfo() : InjectedInputPenInfo(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline InjectedInputTouchInfo::InjectedInputTouchInfo() : InjectedInputTouchInfo(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline auto InputInjector::TryCreate() { return impl::call_factory_cast([](IInputInjectorStatics const& f) { return f.TryCreate(); }); } inline auto InputInjector::TryCreateForAppBroadcastOnly() { return impl::call_factory_cast([](IInputInjectorStatics2 const& f) { return f.TryCreateForAppBroadcastOnly(); }); } } 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 {}; #endif #ifdef __cpp_lib_format #endif } #endif