[PATCH 6/7] include: Add Windows.Devices.Power.IBatteryReport interface definition.
Rémi Bernon
rbernon at codeweavers.com
Mon Mar 7 03:40:28 CST 2022
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
include/Makefile.in | 1 +
include/windows.devices.power.idl | 15 +++++++++++++
include/windows.foundation.idl | 1 +
include/windows.system.power.idl | 37 +++++++++++++++++++++++++++++++
4 files changed, 54 insertions(+)
create mode 100644 include/windows.system.power.idl
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<INT32> **value);
+ [propget] HRESULT DesignCapacityInMilliwattHours([out, retval] Windows.Foundation.IReference<INT32> **value);
+ [propget] HRESULT FullChargeCapacityInMilliwattHours([out, retval] Windows.Foundation.IReference<INT32> **value);
+ [propget] HRESULT RemainingCapacityInMilliwattHours([out, retval] Windows.Foundation.IReference<INT32> **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<HSTRING, Windows.Foundation.Collections.IVectorView<HSTRING>*>;
interface Windows.Foundation.AsyncOperationCompletedHandler<boolean>;
interface Windows.Foundation.IAsyncOperation<boolean>;
+ interface Windows.Foundation.IReference<INT32>;
}
}
}
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,
+ };
+}
--
2.34.1
More information about the wine-devel
mailing list