// C++/WinRT v2.0.250303.1

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

#pragma once
#ifndef WINRT_Windows_System_Power_Thermal_0_H
#define WINRT_Windows_System_Power_Thermal_0_H
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    struct EventRegistrationToken;
    template <typename TSender, typename TResult> struct WINRT_IMPL_EMPTY_BASES TypedEventHandler;
}
WINRT_EXPORT namespace winrt::Windows::System::Power::Thermal
{
    enum class PowerThermalBackEndStatus : int32_t
    {
        Stopped = 0,
        Started = 1,
    };
    struct IPowerThermalChannelConfiguration;
    struct IPowerThermalChannelDataConsumer;
    struct IPowerThermalChannelDataConsumerFactory;
    struct IPowerThermalChannelDataProducer;
    struct IPowerThermalChannelDataProducerFactory;
    struct IPowerThermalChannelDataReceivedEventArgs;
    struct IPowerThermalChannelDiagnostics;
    struct IPowerThermalChannelDiagnosticsStatics;
    struct IPowerThermalChannelFinderStatics;
    struct PowerThermalChannelConfiguration;
    struct PowerThermalChannelDataConsumer;
    struct PowerThermalChannelDataProducer;
    struct PowerThermalChannelDataReceivedEventArgs;
    struct PowerThermalChannelDiagnostics;
    struct PowerThermalChannelFinder;
    struct PowerThermalChannelData;
    struct PowerThermalChannelId;
    struct PowerThermalApiContract;
}
namespace winrt::impl
{
    template <> struct category<winrt::Windows::System::Power::Thermal::IPowerThermalChannelConfiguration>{ using type = interface_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer>{ using type = interface_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumerFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducer>{ using type = interface_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducerFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnostics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnosticsStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::IPowerThermalChannelFinderStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::PowerThermalChannelConfiguration>{ using type = class_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataConsumer>{ using type = class_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataProducer>{ using type = class_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::PowerThermalChannelDiagnostics>{ using type = class_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::PowerThermalChannelFinder>{ using type = class_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::PowerThermalBackEndStatus>{ using type = enum_category; };
    template <> struct category<winrt::Windows::System::Power::Thermal::PowerThermalChannelData>{ using type = struct_category<winrt::Windows::System::Power::Thermal::PowerThermalChannelId, int32_t>; };
    template <> struct category<winrt::Windows::System::Power::Thermal::PowerThermalChannelId>{ using type = struct_category<winrt::guid, uint16_t>; };
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::PowerThermalChannelConfiguration> = L"Windows.System.Power.Thermal.PowerThermalChannelConfiguration";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataConsumer> = L"Windows.System.Power.Thermal.PowerThermalChannelDataConsumer";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataProducer> = L"Windows.System.Power.Thermal.PowerThermalChannelDataProducer";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataReceivedEventArgs> = L"Windows.System.Power.Thermal.PowerThermalChannelDataReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::PowerThermalChannelDiagnostics> = L"Windows.System.Power.Thermal.PowerThermalChannelDiagnostics";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::PowerThermalChannelFinder> = L"Windows.System.Power.Thermal.PowerThermalChannelFinder";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::PowerThermalBackEndStatus> = L"Windows.System.Power.Thermal.PowerThermalBackEndStatus";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::PowerThermalChannelData> = L"Windows.System.Power.Thermal.PowerThermalChannelData";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::PowerThermalChannelId> = L"Windows.System.Power.Thermal.PowerThermalChannelId";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelConfiguration> = L"Windows.System.Power.Thermal.IPowerThermalChannelConfiguration";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer> = L"Windows.System.Power.Thermal.IPowerThermalChannelDataConsumer";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumerFactory> = L"Windows.System.Power.Thermal.IPowerThermalChannelDataConsumerFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducer> = L"Windows.System.Power.Thermal.IPowerThermalChannelDataProducer";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducerFactory> = L"Windows.System.Power.Thermal.IPowerThermalChannelDataProducerFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataReceivedEventArgs> = L"Windows.System.Power.Thermal.IPowerThermalChannelDataReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnostics> = L"Windows.System.Power.Thermal.IPowerThermalChannelDiagnostics";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnosticsStatics> = L"Windows.System.Power.Thermal.IPowerThermalChannelDiagnosticsStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelFinderStatics> = L"Windows.System.Power.Thermal.IPowerThermalChannelFinderStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::System::Power::Thermal::PowerThermalApiContract> = L"Windows.System.Power.Thermal.PowerThermalApiContract";
    template <> inline constexpr guid guid_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelConfiguration>{ 0xAD8383FA,0x172D,0x5D82,{ 0xB2,0x9D,0x81,0xD9,0x37,0x10,0xFB,0x45 } }; // AD8383FA-172D-5D82-B29D-81D93710FB45
    template <> inline constexpr guid guid_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer>{ 0x47CCA211,0x7348,0x5026,{ 0x89,0x8C,0xB1,0x87,0x31,0x23,0x76,0x0D } }; // 47CCA211-7348-5026-898C-B1873123760D
    template <> inline constexpr guid guid_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumerFactory>{ 0xB42D9AB1,0x32F0,0x54BB,{ 0x89,0x9A,0x9A,0xE0,0x52,0x9D,0xA3,0x81 } }; // B42D9AB1-32F0-54BB-899A-9AE0529DA381
    template <> inline constexpr guid guid_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducer>{ 0xA935F244,0x1A7D,0x55D5,{ 0x9C,0x69,0x8A,0xDC,0x1C,0xD1,0xD9,0x93 } }; // A935F244-1A7D-55D5-9C69-8ADC1CD1D993
    template <> inline constexpr guid guid_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducerFactory>{ 0xD2D380CD,0xE09D,0x5472,{ 0xAD,0x62,0x70,0x06,0x1E,0x63,0x00,0x67 } }; // D2D380CD-E09D-5472-AD62-70061E630067
    template <> inline constexpr guid guid_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataReceivedEventArgs>{ 0xD6B643E0,0x6AB6,0x5683,{ 0xA8,0xFC,0x5E,0xD6,0x5E,0xE2,0x0D,0xC5 } }; // D6B643E0-6AB6-5683-A8FC-5ED65EE20DC5
    template <> inline constexpr guid guid_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnostics>{ 0x628FD5C4,0x49B7,0x508F,{ 0xAD,0x9F,0x23,0x09,0xB1,0x16,0x8A,0xAD } }; // 628FD5C4-49B7-508F-AD9F-2309B1168AAD
    template <> inline constexpr guid guid_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnosticsStatics>{ 0xA86EC393,0xB684,0x5633,{ 0xA6,0xCA,0xDF,0xA1,0xC7,0xEE,0xCF,0x87 } }; // A86EC393-B684-5633-A6CA-DFA1C7EECF87
    template <> inline constexpr guid guid_v<winrt::Windows::System::Power::Thermal::IPowerThermalChannelFinderStatics>{ 0xDF8D288B,0xF056,0x55CE,{ 0xB3,0x70,0xF3,0xE1,0xC4,0xE3,0x20,0x63 } }; // DF8D288B-F056-55CE-B370-F3E1C4E32063
    template <> struct default_interface<winrt::Windows::System::Power::Thermal::PowerThermalChannelConfiguration>{ using type = winrt::Windows::System::Power::Thermal::IPowerThermalChannelConfiguration; };
    template <> struct default_interface<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataConsumer>{ using type = winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer; };
    template <> struct default_interface<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataProducer>{ using type = winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducer; };
    template <> struct default_interface<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataReceivedEventArgs>{ using type = winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::System::Power::Thermal::PowerThermalChannelDiagnostics>{ using type = winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnostics; };
    template <> struct abi<winrt::Windows::System::Power::Thermal::IPowerThermalChannelConfiguration>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Id(struct struct_Windows_System_Power_Thermal_PowerThermalChannelId*) noexcept = 0;
            virtual int32_t __stdcall get_ConfigurationString(void**) noexcept = 0;
            virtual int32_t __stdcall GetConfigurationNumericParameters(uint32_t* __resultSize, int32_t**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetChannelIds(uint32_t* __resultSize, struct struct_Windows_System_Power_Thermal_PowerThermalChannelId**) noexcept = 0;
            virtual int32_t __stdcall GetChannelConfigurations(void**) noexcept = 0;
            virtual int32_t __stdcall Start() noexcept = 0;
            virtual int32_t __stdcall Stop() noexcept = 0;
            virtual int32_t __stdcall add_ChannelDataReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_ChannelDataReceived(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall get_BackEndStatus(int32_t*) noexcept = 0;
            virtual int32_t __stdcall add_BackEndStatusChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BackEndStatusChanged(winrt::event_token) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumerFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(uint32_t, struct struct_Windows_System_Power_Thermal_PowerThermalChannelId*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducer>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetChannelIds(uint32_t* __resultSize, struct struct_Windows_System_Power_Thermal_PowerThermalChannelId**) noexcept = 0;
            virtual int32_t __stdcall GetChannelConfigurations(void**) noexcept = 0;
            virtual int32_t __stdcall DisableChannel(struct struct_Windows_System_Power_Thermal_PowerThermalChannelId) noexcept = 0;
            virtual int32_t __stdcall Start() noexcept = 0;
            virtual int32_t __stdcall Stop() noexcept = 0;
            virtual int32_t __stdcall PublishInputChannelData(uint32_t, struct struct_Windows_System_Power_Thermal_PowerThermalChannelData*) noexcept = 0;
            virtual int32_t __stdcall get_BackEndStatus(int32_t*) noexcept = 0;
            virtual int32_t __stdcall add_BackEndStatusChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BackEndStatusChanged(winrt::event_token) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducerFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(uint32_t, struct struct_Windows_System_Power_Thermal_PowerThermalChannelId*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataReceivedEventArgs>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetData(uint32_t* __resultSize, struct struct_Windows_System_Power_Thermal_PowerThermalChannelData**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnostics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnosticsStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Current(void**) noexcept = 0;
            virtual int32_t __stdcall GetDataForChannels(uint32_t, struct struct_Windows_System_Power_Thermal_PowerThermalChannelId*, uint32_t* __resultSize, struct struct_Windows_System_Power_Thermal_PowerThermalChannelData**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::System::Power::Thermal::IPowerThermalChannelFinderStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall FindChannels(winrt::guid, uint32_t* __resultSize, struct struct_Windows_System_Power_Thermal_PowerThermalChannelId**) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Windows_System_Power_Thermal_IPowerThermalChannelConfiguration
    {
        [[nodiscard]] auto Id() const;
        [[nodiscard]] auto ConfigurationString() const;
        auto GetConfigurationNumericParameters() const;
    };
    template <> struct consume<winrt::Windows::System::Power::Thermal::IPowerThermalChannelConfiguration>
    {
        template <typename D> using type = consume_Windows_System_Power_Thermal_IPowerThermalChannelConfiguration<D>;
    };
    template <typename D>
    struct consume_Windows_System_Power_Thermal_IPowerThermalChannelDataConsumer
    {
        auto GetChannelIds() const;
        auto GetChannelConfigurations() const;
        auto Start() const;
        auto Stop() const;
        auto ChannelDataReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataConsumer, winrt::Windows::System::Power::Thermal::PowerThermalChannelDataReceivedEventArgs> const& handler) const;
        using ChannelDataReceived_revoker = impl::event_revoker<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer, &impl::abi_t<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer>::remove_ChannelDataReceived>;
        [[nodiscard]] auto ChannelDataReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataConsumer, winrt::Windows::System::Power::Thermal::PowerThermalChannelDataReceivedEventArgs> const& handler) const;
        auto ChannelDataReceived(winrt::event_token const& token) const noexcept;
        [[nodiscard]] auto BackEndStatus() const;
        auto BackEndStatusChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataConsumer, winrt::Windows::Foundation::IInspectable> const& handler) const;
        using BackEndStatusChanged_revoker = impl::event_revoker<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer, &impl::abi_t<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer>::remove_BackEndStatusChanged>;
        [[nodiscard]] auto BackEndStatusChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataConsumer, winrt::Windows::Foundation::IInspectable> const& handler) const;
        auto BackEndStatusChanged(winrt::event_token const& token) const noexcept;
    };
    template <> struct consume<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer>
    {
        template <typename D> using type = consume_Windows_System_Power_Thermal_IPowerThermalChannelDataConsumer<D>;
    };
    template <typename D>
    struct consume_Windows_System_Power_Thermal_IPowerThermalChannelDataConsumerFactory
    {
        auto CreateInstance(array_view<winrt::Windows::System::Power::Thermal::PowerThermalChannelId const> channelIds) const;
    };
    template <> struct consume<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumerFactory>
    {
        template <typename D> using type = consume_Windows_System_Power_Thermal_IPowerThermalChannelDataConsumerFactory<D>;
    };
    template <typename D>
    struct consume_Windows_System_Power_Thermal_IPowerThermalChannelDataProducer
    {
        auto GetChannelIds() const;
        auto GetChannelConfigurations() const;
        auto DisableChannel(winrt::Windows::System::Power::Thermal::PowerThermalChannelId const& channelId) const;
        auto Start() const;
        auto Stop() const;
        auto PublishInputChannelData(array_view<winrt::Windows::System::Power::Thermal::PowerThermalChannelData const> data) const;
        [[nodiscard]] auto BackEndStatus() const;
        auto BackEndStatusChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataProducer, winrt::Windows::Foundation::IInspectable> const& handler) const;
        using BackEndStatusChanged_revoker = impl::event_revoker<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducer, &impl::abi_t<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducer>::remove_BackEndStatusChanged>;
        [[nodiscard]] auto BackEndStatusChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::System::Power::Thermal::PowerThermalChannelDataProducer, winrt::Windows::Foundation::IInspectable> const& handler) const;
        auto BackEndStatusChanged(winrt::event_token const& token) const noexcept;
    };
    template <> struct consume<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducer>
    {
        template <typename D> using type = consume_Windows_System_Power_Thermal_IPowerThermalChannelDataProducer<D>;
    };
    template <typename D>
    struct consume_Windows_System_Power_Thermal_IPowerThermalChannelDataProducerFactory
    {
        auto CreateInstance(array_view<winrt::Windows::System::Power::Thermal::PowerThermalChannelId const> channelIds) const;
    };
    template <> struct consume<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducerFactory>
    {
        template <typename D> using type = consume_Windows_System_Power_Thermal_IPowerThermalChannelDataProducerFactory<D>;
    };
    template <typename D>
    struct consume_Windows_System_Power_Thermal_IPowerThermalChannelDataReceivedEventArgs
    {
        auto GetData() const;
    };
    template <> struct consume<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_System_Power_Thermal_IPowerThermalChannelDataReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_System_Power_Thermal_IPowerThermalChannelDiagnostics
    {
    };
    template <> struct consume<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnostics>
    {
        template <typename D> using type = consume_Windows_System_Power_Thermal_IPowerThermalChannelDiagnostics<D>;
    };
    template <typename D>
    struct consume_Windows_System_Power_Thermal_IPowerThermalChannelDiagnosticsStatics
    {
        [[nodiscard]] auto Current() const;
        auto GetDataForChannels(array_view<winrt::Windows::System::Power::Thermal::PowerThermalChannelId const> channelIds) const;
    };
    template <> struct consume<winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnosticsStatics>
    {
        template <typename D> using type = consume_Windows_System_Power_Thermal_IPowerThermalChannelDiagnosticsStatics<D>;
    };
    template <typename D>
    struct consume_Windows_System_Power_Thermal_IPowerThermalChannelFinderStatics
    {
        auto FindChannels(winrt::guid const& channelInterfaceType) const;
    };
    template <> struct consume<winrt::Windows::System::Power::Thermal::IPowerThermalChannelFinderStatics>
    {
        template <typename D> using type = consume_Windows_System_Power_Thermal_IPowerThermalChannelFinderStatics<D>;
    };
    struct struct_Windows_System_Power_Thermal_PowerThermalChannelData
    {
        struct{ winrt::guid InterfaceType; uint16_t InstanceId; } Id;
        int32_t Value;
    };
    template <> struct abi<Windows::System::Power::Thermal::PowerThermalChannelData>
    {
        using type = struct_Windows_System_Power_Thermal_PowerThermalChannelData;
    };
    struct struct_Windows_System_Power_Thermal_PowerThermalChannelId
    {
        winrt::guid InterfaceType;
        uint16_t InstanceId;
    };
    template <> struct abi<Windows::System::Power::Thermal::PowerThermalChannelId>
    {
        using type = struct_Windows_System_Power_Thermal_PowerThermalChannelId;
    };
}
#endif
