// 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_2_H #define WINRT_Windows_System_Power_Thermal_2_H #include "winrt/impl/Windows.Foundation.2.h" #include "winrt/impl/Windows.System.Power.Thermal.1.h" WINRT_EXPORT namespace winrt::Windows::System::Power::Thermal { struct PowerThermalChannelId { winrt::guid InterfaceType {}; uint16_t InstanceId {}; }; inline bool operator==(PowerThermalChannelId const& left, PowerThermalChannelId const& right) noexcept { return left.InterfaceType == right.InterfaceType && left.InstanceId == right.InstanceId; } inline bool operator!=(PowerThermalChannelId const& left, PowerThermalChannelId const& right) noexcept { return !(left == right); } struct PowerThermalChannelData { winrt::Windows::System::Power::Thermal::PowerThermalChannelId Id {}; int32_t Value {}; }; inline bool operator==(PowerThermalChannelData const& left, PowerThermalChannelData const& right) noexcept { return left.Id == right.Id && left.Value == right.Value; } inline bool operator!=(PowerThermalChannelData const& left, PowerThermalChannelData const& right) noexcept { return !(left == right); } struct WINRT_IMPL_EMPTY_BASES PowerThermalChannelConfiguration : winrt::Windows::System::Power::Thermal::IPowerThermalChannelConfiguration { PowerThermalChannelConfiguration(std::nullptr_t) noexcept {} PowerThermalChannelConfiguration(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::System::Power::Thermal::IPowerThermalChannelConfiguration(ptr, take_ownership_from_abi) {} }; struct WINRT_IMPL_EMPTY_BASES PowerThermalChannelDataConsumer : winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer, impl::require { PowerThermalChannelDataConsumer(std::nullptr_t) noexcept {} PowerThermalChannelDataConsumer(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataConsumer(ptr, take_ownership_from_abi) {} explicit PowerThermalChannelDataConsumer(array_view channelIds); }; struct WINRT_IMPL_EMPTY_BASES PowerThermalChannelDataProducer : winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducer, impl::require { PowerThermalChannelDataProducer(std::nullptr_t) noexcept {} PowerThermalChannelDataProducer(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataProducer(ptr, take_ownership_from_abi) {} explicit PowerThermalChannelDataProducer(array_view channelIds); }; struct WINRT_IMPL_EMPTY_BASES PowerThermalChannelDataReceivedEventArgs : winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataReceivedEventArgs { PowerThermalChannelDataReceivedEventArgs(std::nullptr_t) noexcept {} PowerThermalChannelDataReceivedEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::System::Power::Thermal::IPowerThermalChannelDataReceivedEventArgs(ptr, take_ownership_from_abi) {} }; struct WINRT_IMPL_EMPTY_BASES PowerThermalChannelDiagnostics : winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnostics { PowerThermalChannelDiagnostics(std::nullptr_t) noexcept {} PowerThermalChannelDiagnostics(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::System::Power::Thermal::IPowerThermalChannelDiagnostics(ptr, take_ownership_from_abi) {} [[nodiscard]] static auto Current(); static auto GetDataForChannels(array_view channelIds); }; struct PowerThermalChannelFinder { PowerThermalChannelFinder() = delete; static auto FindChannels(winrt::guid const& channelInterfaceType); }; } #endif