[PATCH 3/5] include: Add Windows.Gaming.Input.HidGameControllerProvider runtimeclass definition.

Rémi Bernon rbernon at codeweavers.com
Tue Mar 1 02:32:34 CST 2022


Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 include/windows.gaming.input.custom.idl | 31 +++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/include/windows.gaming.input.custom.idl b/include/windows.gaming.input.custom.idl
index 5a3e94aa978..e30b383e9d7 100644
--- a/include/windows.gaming.input.custom.idl
+++ b/include/windows.gaming.input.custom.idl
@@ -37,10 +37,12 @@ namespace Windows.Gaming.Input.Custom {
     interface IGameControllerInputSink;
     interface IGameControllerProvider;
     interface IHidGameControllerInputSink;
+    interface IHidGameControllerProvider;
     interface ICustomGameControllerFactory;
     interface IGameControllerFactoryManagerStatics;
     interface IGameControllerFactoryManagerStatics2;
     runtimeclass GameControllerFactoryManager;
+    runtimeclass HidGameControllerProvider;
 
     [contract(Windows.Foundation.UniversalApiContract, 3.0)]
     enum XusbDeviceSubtype
@@ -108,6 +110,24 @@ namespace Windows.Gaming.Input.Custom {
                                       [in, size_is(report_len)] BYTE *report_buf);
     }
 
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Gaming.Input.Custom.HidGameControllerProvider),
+        uuid(95ce3af4-abf0-4b68-a081-3b7de73ff0e7)
+    ]
+    interface IHidGameControllerProvider : IInspectable
+        requires Windows.Gaming.Input.Custom.IGameControllerProvider
+    {
+        [propget] HRESULT UsageId([out, retval] UINT16 *value);
+        [propget] HRESULT UsagePage([out, retval] UINT16 *value);
+        HRESULT GetFeatureReport([in] BYTE id, [in] UINT32 report_len,
+                                 [out, size_is(report_len)] BYTE *report_buf);
+        HRESULT SendFeatureReport([in] BYTE id, [in] UINT32 report_len,
+                                  [in, size_is(report_len)] BYTE *report_buf);
+        HRESULT SendOutputReport([in] BYTE id, [in] UINT32 report_len,
+                                 [in, size_is(report_len)] BYTE *report_buf);
+    }
+
     [
         contract(Windows.Foundation.UniversalApiContract, 3.0),
         uuid(69a0ae5e-758e-4cbe-ace6-62155fe9126f)
@@ -159,4 +179,15 @@ namespace Windows.Gaming.Input.Custom {
     runtimeclass GameControllerFactoryManager
     {
     }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        marshaling_behavior(agile),
+        threading(both)
+    ]
+    runtimeclass HidGameControllerProvider
+    {
+        [default] interface Windows.Gaming.Input.Custom.IHidGameControllerProvider;
+        interface Windows.Gaming.Input.Custom.IGameControllerProvider;
+    }
 }
-- 
2.34.1




More information about the wine-devel mailing list