// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Devices_0_H #define WINRT_Windows_Devices_0_H WINRT_EXPORT namespace winrt::Windows::Devices::Adc::Provider { struct IAdcControllerProvider; } WINRT_EXPORT namespace winrt::Windows::Devices::Gpio::Provider { struct IGpioControllerProvider; } WINRT_EXPORT namespace winrt::Windows::Devices::I2c::Provider { struct II2cControllerProvider; } WINRT_EXPORT namespace winrt::Windows::Devices::Pwm::Provider { struct IPwmControllerProvider; } WINRT_EXPORT namespace winrt::Windows::Devices::Spi::Provider { struct ISpiControllerProvider; } WINRT_EXPORT namespace winrt::Windows::Devices { struct ILowLevelDevicesAggregateProvider; struct ILowLevelDevicesAggregateProviderFactory; struct ILowLevelDevicesController; struct ILowLevelDevicesControllerStatics; struct LowLevelDevicesAggregateProvider; struct LowLevelDevicesController; struct DevicesLowLevelContract; } 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 = class_category; }; template <> struct category{ using type = class_category; }; template <> inline constexpr auto& name_v = L"Windows.Devices.LowLevelDevicesAggregateProvider"; template <> inline constexpr auto& name_v = L"Windows.Devices.LowLevelDevicesController"; template <> inline constexpr auto& name_v = L"Windows.Devices.ILowLevelDevicesAggregateProvider"; template <> inline constexpr auto& name_v = L"Windows.Devices.ILowLevelDevicesAggregateProviderFactory"; template <> inline constexpr auto& name_v = L"Windows.Devices.ILowLevelDevicesController"; template <> inline constexpr auto& name_v = L"Windows.Devices.ILowLevelDevicesControllerStatics"; template <> inline constexpr auto& name_v = L"Windows.Devices.DevicesLowLevelContract"; template <> inline constexpr guid guid_v{ 0xA73E561C,0xAAC1,0x4EC7,{ 0xA8,0x52,0x47,0x9F,0x70,0x60,0xD0,0x1F } }; // A73E561C-AAC1-4EC7-A852-479F7060D01F template <> inline constexpr guid guid_v{ 0x9AC4AAF6,0x3473,0x465E,{ 0x96,0xD5,0x36,0x28,0x1A,0x2C,0x57,0xAF } }; // 9AC4AAF6-3473-465E-96D5-36281A2C57AF template <> inline constexpr guid guid_v{ 0x2EC23DD4,0x179B,0x45DE,{ 0x9B,0x39,0x3A,0xE0,0x25,0x27,0xDE,0x52 } }; // 2EC23DD4-179B-45DE-9B39-3AE02527DE52 template <> inline constexpr guid guid_v{ 0x093E926A,0xFCCB,0x4394,{ 0xA6,0x97,0x19,0xDE,0x63,0x7C,0x2D,0xB3 } }; // 093E926A-FCCB-4394-A697-19DE637C2DB3 template <> struct default_interface{ using type = winrt::Windows::Devices::ILowLevelDevicesAggregateProvider; }; template <> struct default_interface{ using type = winrt::Windows::Devices::ILowLevelDevicesController; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_AdcControllerProvider(void**) noexcept = 0; virtual int32_t __stdcall get_PwmControllerProvider(void**) noexcept = 0; virtual int32_t __stdcall get_GpioControllerProvider(void**) noexcept = 0; virtual int32_t __stdcall get_I2cControllerProvider(void**) noexcept = 0; virtual int32_t __stdcall get_SpiControllerProvider(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall Create(void*, void*, void*, void*, void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_DefaultProvider(void**) noexcept = 0; virtual int32_t __stdcall put_DefaultProvider(void*) noexcept = 0; }; }; template struct consume_Windows_Devices_ILowLevelDevicesAggregateProvider { [[nodiscard]] auto AdcControllerProvider() const; [[nodiscard]] auto PwmControllerProvider() const; [[nodiscard]] auto GpioControllerProvider() const; [[nodiscard]] auto I2cControllerProvider() const; [[nodiscard]] auto SpiControllerProvider() const; }; template <> struct consume { template using type = consume_Windows_Devices_ILowLevelDevicesAggregateProvider; }; template struct consume_Windows_Devices_ILowLevelDevicesAggregateProviderFactory { auto Create(winrt::Windows::Devices::Adc::Provider::IAdcControllerProvider const& adc, winrt::Windows::Devices::Pwm::Provider::IPwmControllerProvider const& pwm, winrt::Windows::Devices::Gpio::Provider::IGpioControllerProvider const& gpio, winrt::Windows::Devices::I2c::Provider::II2cControllerProvider const& i2c, winrt::Windows::Devices::Spi::Provider::ISpiControllerProvider const& spi) const; }; template <> struct consume { template using type = consume_Windows_Devices_ILowLevelDevicesAggregateProviderFactory; }; template struct consume_Windows_Devices_ILowLevelDevicesController { }; template <> struct consume { template using type = consume_Windows_Devices_ILowLevelDevicesController; }; template struct consume_Windows_Devices_ILowLevelDevicesControllerStatics { [[nodiscard]] auto DefaultProvider() const; auto DefaultProvider(winrt::Windows::Devices::ILowLevelDevicesAggregateProvider const& value) const; }; template <> struct consume { template using type = consume_Windows_Devices_ILowLevelDevicesControllerStatics; }; } #endif