[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