// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Devices_HumanInterfaceDevice_0_H #define WINRT_Windows_Devices_HumanInterfaceDevice_0_H WINRT_EXPORT namespace winrt::Windows::Foundation { struct EventRegistrationToken; template struct WINRT_IMPL_EMPTY_BASES TypedEventHandler; } WINRT_EXPORT namespace winrt::Windows::Storage { enum class FileAccessMode : int32_t; } WINRT_EXPORT namespace winrt::Windows::Storage::Streams { struct IBuffer; } WINRT_EXPORT namespace winrt::Windows::Devices::HumanInterfaceDevice { enum class HidCollectionType : int32_t { Physical = 0, Application = 1, Logical = 2, Report = 3, NamedArray = 4, UsageSwitch = 5, UsageModifier = 6, Other = 7, }; enum class HidReportType : int32_t { Input = 0, Output = 1, Feature = 2, }; struct IHidBooleanControl; struct IHidBooleanControlDescription; struct IHidBooleanControlDescription2; struct IHidCollection; struct IHidDevice; struct IHidDeviceStatics; struct IHidFeatureReport; struct IHidInputReport; struct IHidInputReportReceivedEventArgs; struct IHidNumericControl; struct IHidNumericControlDescription; struct IHidOutputReport; struct HidBooleanControl; struct HidBooleanControlDescription; struct HidCollection; struct HidDevice; struct HidFeatureReport; struct HidInputReport; struct HidInputReportReceivedEventArgs; struct HidNumericControl; struct HidNumericControlDescription; struct HidOutputReport; } namespace winrt::impl { template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidBooleanControl"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidCollection"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidDevice"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidFeatureReport"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidInputReport"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidInputReportReceivedEventArgs"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidNumericControl"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidOutputReport"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidCollectionType"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.HidReportType"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidBooleanControl"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidBooleanControlDescription"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidBooleanControlDescription2"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidCollection"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidDevice"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidDeviceStatics"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidFeatureReport"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidInputReport"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidInputReportReceivedEventArgs"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidNumericControl"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidNumericControlDescription"; template <> inline constexpr auto& name_v = L"Windows.Devices.HumanInterfaceDevice.IHidOutputReport"; template <> inline constexpr guid guid_v{ 0x524DF48A,0x3695,0x408C,{ 0xBB,0xA2,0xE2,0xEB,0x5A,0xBF,0xBC,0x20 } }; // 524DF48A-3695-408C-BBA2-E2EB5ABFBC20 template <> inline constexpr guid guid_v{ 0x6196E543,0x29D8,0x4A2A,{ 0x86,0x83,0x84,0x9E,0x20,0x7B,0xBE,0x31 } }; // 6196E543-29D8-4A2A-8683-849E207BBE31 template <> inline constexpr guid guid_v{ 0xC8EED2EA,0x8A77,0x4C36,{ 0xAA,0x00,0x5F,0xF0,0x44,0x9D,0x3E,0x73 } }; // C8EED2EA-8A77-4C36-AA00-5FF0449D3E73 template <> inline constexpr guid guid_v{ 0x7189F5A3,0x32F1,0x46E3,{ 0xBE,0xFD,0x44,0xD2,0x66,0x3B,0x7E,0x6A } }; // 7189F5A3-32F1-46E3-BEFD-44D2663B7E6A template <> inline constexpr guid guid_v{ 0x5F8A14E7,0x2200,0x432E,{ 0x95,0xDA,0xD0,0x9B,0x87,0xD5,0x74,0xA8 } }; // 5F8A14E7-2200-432E-95DA-D09B87D574A8 template <> inline constexpr guid guid_v{ 0x9E5981E4,0x9856,0x418C,{ 0x9F,0x73,0x77,0xDE,0x0C,0xD8,0x57,0x54 } }; // 9E5981E4-9856-418C-9F73-77DE0CD85754 template <> inline constexpr guid guid_v{ 0x841D9B79,0x5AE5,0x46E3,{ 0x82,0xEF,0x1F,0xEC,0x5C,0x89,0x42,0xF4 } }; // 841D9B79-5AE5-46E3-82EF-1FEC5C8942F4 template <> inline constexpr guid guid_v{ 0xC35D0E50,0xF7E7,0x4E8D,{ 0xB2,0x3E,0xCA,0xBB,0xE5,0x6B,0x90,0xE9 } }; // C35D0E50-F7E7-4E8D-B23E-CABBE56B90E9 template <> inline constexpr guid guid_v{ 0x7059C5CB,0x59B2,0x4DC2,{ 0x98,0x5C,0x0A,0xDC,0x61,0x36,0xFA,0x2D } }; // 7059C5CB-59B2-4DC2-985C-0ADC6136FA2D template <> inline constexpr guid guid_v{ 0xE38A12A5,0x35A7,0x4B75,{ 0x89,0xC8,0xFB,0x1F,0x28,0xB1,0x08,0x23 } }; // E38A12A5-35A7-4B75-89C8-FB1F28B10823 template <> inline constexpr guid guid_v{ 0x638D5E86,0x1D97,0x4C75,{ 0x92,0x7F,0x5F,0xF5,0x8B,0xA0,0x5E,0x32 } }; // 638D5E86-1D97-4C75-927F-5FF58BA05E32 template <> inline constexpr guid guid_v{ 0x62CB2544,0xC896,0x4463,{ 0x93,0xC1,0xDF,0x9D,0xB0,0x53,0xC4,0x50 } }; // 62CB2544-C896-4463-93C1-DF9DB053C450 template <> struct default_interface{ using type = winrt::Windows::Devices::HumanInterfaceDevice::IHidBooleanControl; }; template <> struct default_interface{ using type = winrt::Windows::Devices::HumanInterfaceDevice::IHidBooleanControlDescription; }; template <> struct default_interface{ using type = winrt::Windows::Devices::HumanInterfaceDevice::IHidCollection; }; template <> struct default_interface{ using type = winrt::Windows::Devices::HumanInterfaceDevice::IHidDevice; }; template <> struct default_interface{ using type = winrt::Windows::Devices::HumanInterfaceDevice::IHidFeatureReport; }; template <> struct default_interface{ using type = winrt::Windows::Devices::HumanInterfaceDevice::IHidInputReport; }; template <> struct default_interface{ using type = winrt::Windows::Devices::HumanInterfaceDevice::IHidInputReportReceivedEventArgs; }; template <> struct default_interface{ using type = winrt::Windows::Devices::HumanInterfaceDevice::IHidNumericControl; }; template <> struct default_interface{ using type = winrt::Windows::Devices::HumanInterfaceDevice::IHidNumericControlDescription; }; template <> struct default_interface{ using type = winrt::Windows::Devices::HumanInterfaceDevice::IHidOutputReport; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Id(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_UsagePage(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_UsageId(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_IsActive(bool*) noexcept = 0; virtual int32_t __stdcall put_IsActive(bool) noexcept = 0; virtual int32_t __stdcall get_ControlDescription(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Id(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_ReportId(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_ReportType(int32_t*) noexcept = 0; virtual int32_t __stdcall get_UsagePage(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_UsageId(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_ParentCollections(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_IsAbsolute(bool*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Id(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_Type(int32_t*) noexcept = 0; virtual int32_t __stdcall get_UsagePage(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_UsageId(uint32_t*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_VendorId(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_ProductId(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_Version(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_UsagePage(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_UsageId(uint16_t*) noexcept = 0; virtual int32_t __stdcall GetInputReportAsync(void**) noexcept = 0; virtual int32_t __stdcall GetInputReportByIdAsync(uint16_t, void**) noexcept = 0; virtual int32_t __stdcall GetFeatureReportAsync(void**) noexcept = 0; virtual int32_t __stdcall GetFeatureReportByIdAsync(uint16_t, void**) noexcept = 0; virtual int32_t __stdcall CreateOutputReport(void**) noexcept = 0; virtual int32_t __stdcall CreateOutputReportById(uint16_t, void**) noexcept = 0; virtual int32_t __stdcall CreateFeatureReport(void**) noexcept = 0; virtual int32_t __stdcall CreateFeatureReportById(uint16_t, void**) noexcept = 0; virtual int32_t __stdcall SendOutputReportAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall SendFeatureReportAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall GetBooleanControlDescriptions(int32_t, uint16_t, uint16_t, void**) noexcept = 0; virtual int32_t __stdcall GetNumericControlDescriptions(int32_t, uint16_t, uint16_t, void**) noexcept = 0; virtual int32_t __stdcall add_InputReportReceived(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_InputReportReceived(winrt::event_token) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetDeviceSelector(uint16_t, uint16_t, void**) noexcept = 0; virtual int32_t __stdcall GetDeviceSelectorVidPid(uint16_t, uint16_t, uint16_t, uint16_t, void**) noexcept = 0; virtual int32_t __stdcall FromIdAsync(void*, int32_t, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Id(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_Data(void**) noexcept = 0; virtual int32_t __stdcall put_Data(void*) noexcept = 0; virtual int32_t __stdcall GetBooleanControl(uint16_t, uint16_t, void**) noexcept = 0; virtual int32_t __stdcall GetBooleanControlByDescription(void*, void**) noexcept = 0; virtual int32_t __stdcall GetNumericControl(uint16_t, uint16_t, void**) noexcept = 0; virtual int32_t __stdcall GetNumericControlByDescription(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Id(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_Data(void**) noexcept = 0; virtual int32_t __stdcall get_ActivatedBooleanControls(void**) noexcept = 0; virtual int32_t __stdcall get_TransitionedBooleanControls(void**) noexcept = 0; virtual int32_t __stdcall GetBooleanControl(uint16_t, uint16_t, void**) noexcept = 0; virtual int32_t __stdcall GetBooleanControlByDescription(void*, void**) noexcept = 0; virtual int32_t __stdcall GetNumericControl(uint16_t, uint16_t, void**) noexcept = 0; virtual int32_t __stdcall GetNumericControlByDescription(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Report(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Id(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_IsGrouped(bool*) noexcept = 0; virtual int32_t __stdcall get_UsagePage(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_UsageId(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_Value(int64_t*) noexcept = 0; virtual int32_t __stdcall put_Value(int64_t) noexcept = 0; virtual int32_t __stdcall get_ScaledValue(int64_t*) noexcept = 0; virtual int32_t __stdcall put_ScaledValue(int64_t) noexcept = 0; virtual int32_t __stdcall get_ControlDescription(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Id(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_ReportId(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_ReportType(int32_t*) noexcept = 0; virtual int32_t __stdcall get_ReportSize(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_ReportCount(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_UsagePage(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_UsageId(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_LogicalMinimum(int32_t*) noexcept = 0; virtual int32_t __stdcall get_LogicalMaximum(int32_t*) noexcept = 0; virtual int32_t __stdcall get_PhysicalMinimum(int32_t*) noexcept = 0; virtual int32_t __stdcall get_PhysicalMaximum(int32_t*) noexcept = 0; virtual int32_t __stdcall get_UnitExponent(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_Unit(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_IsAbsolute(bool*) noexcept = 0; virtual int32_t __stdcall get_HasNull(bool*) noexcept = 0; virtual int32_t __stdcall get_ParentCollections(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Id(uint16_t*) noexcept = 0; virtual int32_t __stdcall get_Data(void**) noexcept = 0; virtual int32_t __stdcall put_Data(void*) noexcept = 0; virtual int32_t __stdcall GetBooleanControl(uint16_t, uint16_t, void**) noexcept = 0; virtual int32_t __stdcall GetBooleanControlByDescription(void*, void**) noexcept = 0; virtual int32_t __stdcall GetNumericControl(uint16_t, uint16_t, void**) noexcept = 0; virtual int32_t __stdcall GetNumericControlByDescription(void*, void**) noexcept = 0; }; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidBooleanControl { [[nodiscard]] auto Id() const; [[nodiscard]] auto UsagePage() const; [[nodiscard]] auto UsageId() const; [[nodiscard]] auto IsActive() const; auto IsActive(bool value) const; [[nodiscard]] auto ControlDescription() const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidBooleanControl; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidBooleanControlDescription { [[nodiscard]] auto Id() const; [[nodiscard]] auto ReportId() const; [[nodiscard]] auto ReportType() const; [[nodiscard]] auto UsagePage() const; [[nodiscard]] auto UsageId() const; [[nodiscard]] auto ParentCollections() const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidBooleanControlDescription; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidBooleanControlDescription2 { [[nodiscard]] auto IsAbsolute() const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidBooleanControlDescription2; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidCollection { [[nodiscard]] auto Id() const; [[nodiscard]] auto Type() const; [[nodiscard]] auto UsagePage() const; [[nodiscard]] auto UsageId() const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidCollection; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidDevice { [[nodiscard]] auto VendorId() const; [[nodiscard]] auto ProductId() const; [[nodiscard]] auto Version() const; [[nodiscard]] auto UsagePage() const; [[nodiscard]] auto UsageId() const; auto GetInputReportAsync() const; auto GetInputReportAsync(uint16_t reportId) const; auto GetFeatureReportAsync() const; auto GetFeatureReportAsync(uint16_t reportId) const; auto CreateOutputReport() const; auto CreateOutputReport(uint16_t reportId) const; auto CreateFeatureReport() const; auto CreateFeatureReport(uint16_t reportId) const; auto SendOutputReportAsync(winrt::Windows::Devices::HumanInterfaceDevice::HidOutputReport const& outputReport) const; auto SendFeatureReportAsync(winrt::Windows::Devices::HumanInterfaceDevice::HidFeatureReport const& featureReport) const; auto GetBooleanControlDescriptions(winrt::Windows::Devices::HumanInterfaceDevice::HidReportType const& reportType, uint16_t usagePage, uint16_t usageId) const; auto GetNumericControlDescriptions(winrt::Windows::Devices::HumanInterfaceDevice::HidReportType const& reportType, uint16_t usagePage, uint16_t usageId) const; auto InputReportReceived(winrt::Windows::Foundation::TypedEventHandler const& reportHandler) const; using InputReportReceived_revoker = impl::event_revoker::remove_InputReportReceived>; [[nodiscard]] auto InputReportReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& reportHandler) const; auto InputReportReceived(winrt::event_token const& token) const noexcept; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidDevice; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidDeviceStatics { auto GetDeviceSelector(uint16_t usagePage, uint16_t usageId) const; auto GetDeviceSelector(uint16_t usagePage, uint16_t usageId, uint16_t vendorId, uint16_t productId) const; auto FromIdAsync(param::hstring const& deviceId, winrt::Windows::Storage::FileAccessMode const& accessMode) const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidDeviceStatics; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidFeatureReport { [[nodiscard]] auto Id() const; [[nodiscard]] auto Data() const; auto Data(winrt::Windows::Storage::Streams::IBuffer const& value) const; auto GetBooleanControl(uint16_t usagePage, uint16_t usageId) const; auto GetBooleanControlByDescription(winrt::Windows::Devices::HumanInterfaceDevice::HidBooleanControlDescription const& controlDescription) const; auto GetNumericControl(uint16_t usagePage, uint16_t usageId) const; auto GetNumericControlByDescription(winrt::Windows::Devices::HumanInterfaceDevice::HidNumericControlDescription const& controlDescription) const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidFeatureReport; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidInputReport { [[nodiscard]] auto Id() const; [[nodiscard]] auto Data() const; [[nodiscard]] auto ActivatedBooleanControls() const; [[nodiscard]] auto TransitionedBooleanControls() const; auto GetBooleanControl(uint16_t usagePage, uint16_t usageId) const; auto GetBooleanControlByDescription(winrt::Windows::Devices::HumanInterfaceDevice::HidBooleanControlDescription const& controlDescription) const; auto GetNumericControl(uint16_t usagePage, uint16_t usageId) const; auto GetNumericControlByDescription(winrt::Windows::Devices::HumanInterfaceDevice::HidNumericControlDescription const& controlDescription) const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidInputReport; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidInputReportReceivedEventArgs { [[nodiscard]] auto Report() const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidInputReportReceivedEventArgs; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidNumericControl { [[nodiscard]] auto Id() const; [[nodiscard]] auto IsGrouped() const; [[nodiscard]] auto UsagePage() const; [[nodiscard]] auto UsageId() const; [[nodiscard]] auto Value() const; auto Value(int64_t value) const; [[nodiscard]] auto ScaledValue() const; auto ScaledValue(int64_t value) const; [[nodiscard]] auto ControlDescription() const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidNumericControl; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidNumericControlDescription { [[nodiscard]] auto Id() const; [[nodiscard]] auto ReportId() const; [[nodiscard]] auto ReportType() const; [[nodiscard]] auto ReportSize() const; [[nodiscard]] auto ReportCount() const; [[nodiscard]] auto UsagePage() const; [[nodiscard]] auto UsageId() const; [[nodiscard]] auto LogicalMinimum() const; [[nodiscard]] auto LogicalMaximum() const; [[nodiscard]] auto PhysicalMinimum() const; [[nodiscard]] auto PhysicalMaximum() const; [[nodiscard]] auto UnitExponent() const; [[nodiscard]] auto Unit() const; [[nodiscard]] auto IsAbsolute() const; [[nodiscard]] auto HasNull() const; [[nodiscard]] auto ParentCollections() const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidNumericControlDescription; }; template struct consume_Windows_Devices_HumanInterfaceDevice_IHidOutputReport { [[nodiscard]] auto Id() const; [[nodiscard]] auto Data() const; auto Data(winrt::Windows::Storage::Streams::IBuffer const& value) const; auto GetBooleanControl(uint16_t usagePage, uint16_t usageId) const; auto GetBooleanControlByDescription(winrt::Windows::Devices::HumanInterfaceDevice::HidBooleanControlDescription const& controlDescription) const; auto GetNumericControl(uint16_t usagePage, uint16_t usageId) const; auto GetNumericControlByDescription(winrt::Windows::Devices::HumanInterfaceDevice::HidNumericControlDescription const& controlDescription) const; }; template <> struct consume { template using type = consume_Windows_Devices_HumanInterfaceDevice_IHidOutputReport; }; } #endif