diff --git a/include/Makefile.in b/include/Makefile.in index ae551abd4c0..9578c557af7 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -792,6 +792,7 @@ SOURCES = \ windows.media.speechsynthesis.idl \ windows.storage.streams.idl \ windows.system.idl \ + windows.system.power.idl \ windows.system.userprofile.idl \ windowscontracts.idl \ windowsx.h \ diff --git a/include/windows.devices.power.idl b/include/windows.devices.power.idl index 4bf2599686c..f91c8fac6e3 100644 --- a/include/windows.devices.power.idl +++ b/include/windows.devices.power.idl @@ -22,11 +22,26 @@ import "inspectable.idl"; import "windows.foundation.idl"; +import "windows.system.power.idl"; namespace Windows.Devices.Power { interface IBatteryReport; runtimeclass BatteryReport; + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Devices.Power.BatteryReport), + uuid(c9858c3a-4e13-420a-a8d0-24f18f395401) + ] + interface IBatteryReport : IInspectable + { + [propget] HRESULT ChargeRateInMilliwatts([out, retval] Windows.Foundation.IReference **value); + [propget] HRESULT DesignCapacityInMilliwattHours([out, retval] Windows.Foundation.IReference **value); + [propget] HRESULT FullChargeCapacityInMilliwattHours([out, retval] Windows.Foundation.IReference **value); + [propget] HRESULT RemainingCapacityInMilliwattHours([out, retval] Windows.Foundation.IReference **value); + [propget] HRESULT Status([out, retval] Windows.System.Power.BatteryStatus *value); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl index 50e134d3900..a92a5d82424 100644 --- a/include/windows.foundation.idl +++ b/include/windows.foundation.idl @@ -167,6 +167,7 @@ namespace Windows { interface Windows.Foundation.Collections.IMapView*>; interface Windows.Foundation.AsyncOperationCompletedHandler; interface Windows.Foundation.IAsyncOperation; + interface Windows.Foundation.IReference; } } } diff --git a/include/windows.system.power.idl b/include/windows.system.power.idl new file mode 100644 index 00000000000..366042dbf2f --- /dev/null +++ b/include/windows.system.power.idl @@ -0,0 +1,37 @@ +/* + * Copyright 2022 RĂ©mi Bernon for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifdef __WIDL__ +#pragma winrt ns_prefix +#endif + +import "inspectable.idl"; +import "windows.foundation.idl"; + +namespace Windows.System.Power { + typedef enum BatteryStatus BatteryStatus; + + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + enum BatteryStatus + { + NotPresent = 0, + Discharging = 1, + Idle = 2, + Charging = 3, + }; +}