Rémi Bernon : include: Add Windows.Gaming.Input.Custom.GameControllerFactoryManager runtimeclass definition.

Alexandre Julliard julliard at winehq.org
Mon Feb 28 15:50:33 CST 2022


Module: wine
Branch: master
Commit: fbfefb15330edab483c49b0ae0ab34bf17fe2998
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=fbfefb15330edab483c49b0ae0ab34bf17fe2998

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Mon Feb 28 09:44:06 2022 +0100

include: Add Windows.Gaming.Input.Custom.GameControllerFactoryManager runtimeclass definition.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/windows.gaming.input.custom.idl | 68 +++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/include/windows.gaming.input.custom.idl b/include/windows.gaming.input.custom.idl
index 2338e3be166..a95ec9db482 100644
--- a/include/windows.gaming.input.custom.idl
+++ b/include/windows.gaming.input.custom.idl
@@ -29,9 +29,37 @@ import "windows.gaming.input.idl";
 import "windows.storage.streams.idl";
 
 namespace Windows.Gaming.Input.Custom {
+    typedef enum XusbDeviceSubtype XusbDeviceSubtype;
+    typedef enum XusbDeviceType XusbDeviceType;
     typedef struct GameControllerVersionInfo GameControllerVersionInfo;
     interface IGameControllerProvider;
     interface ICustomGameControllerFactory;
+    interface IGameControllerFactoryManagerStatics;
+    interface IGameControllerFactoryManagerStatics2;
+    runtimeclass GameControllerFactoryManager;
+
+    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
+    enum XusbDeviceSubtype
+    {
+        Unknown = 0,
+        Gamepad = 1,
+        ArcadePad = 2,
+        ArcadeStick = 3,
+        FlightStick = 4,
+        Wheel = 5,
+        Guitar = 6,
+        GuitarAlternate = 7,
+        GuitarBass = 8,
+        DrumKit = 9,
+        DancePad = 10,
+    };
+
+    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
+    enum XusbDeviceType
+    {
+        Unknown = 0,
+        Gamepad = 1,
+    };
 
     [contract(Windows.Foundation.UniversalApiContract, 3.0)]
     struct GameControllerVersionInfo
@@ -66,4 +94,44 @@ namespace Windows.Gaming.Input.Custom {
         HRESULT OnGameControllerAdded([in] Windows.Gaming.Input.IGameController *value);
         HRESULT OnGameControllerRemoved([in] Windows.Gaming.Input.IGameController *value);
     }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 3.0),
+        exclusiveto(Windows.Gaming.Input.Custom.GameControllerFactoryManager),
+        uuid(36cb66e3-d0a1-4986-a24c-40b137deba9e)
+    ]
+    interface IGameControllerFactoryManagerStatics : IInspectable
+    {
+        HRESULT RegisterCustomFactoryForGipInterface([in] Windows.Gaming.Input.Custom.ICustomGameControllerFactory *factory,
+                                                     [in] GUID interfaceId);
+        HRESULT RegisterCustomFactoryForHardwareId([in] Windows.Gaming.Input.Custom.ICustomGameControllerFactory *factory,
+                                                   [in] UINT16 vendor_id, [in] UINT16 product_id);
+        HRESULT RegisterCustomFactoryForXusbType([in] Windows.Gaming.Input.Custom.ICustomGameControllerFactory *factory,
+                                                 [in] Windows.Gaming.Input.Custom.XusbDeviceType type,
+                                                 [in] Windows.Gaming.Input.Custom.XusbDeviceSubtype subtype);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Gaming.Input.Custom.GameControllerFactoryManager),
+        uuid(eace5644-19df-4115-b32a-2793e2aea3bb)
+    ]
+    interface IGameControllerFactoryManagerStatics2 : IInspectable
+        requires Windows.Gaming.Input.Custom.IGameControllerFactoryManagerStatics
+    {
+        HRESULT TryGetFactoryControllerFromGameController([in] Windows.Gaming.Input.Custom.ICustomGameControllerFactory *factory,
+                                                          [in] Windows.Gaming.Input.IGameController *controller,
+                                                          [out, retval] Windows.Gaming.Input.IGameController **value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 3.0),
+        marshaling_behavior(agile),
+        static(Windows.Gaming.Input.Custom.IGameControllerFactoryManagerStatics, Windows.Foundation.UniversalApiContract, 3.0),
+        static(Windows.Gaming.Input.Custom.IGameControllerFactoryManagerStatics2, Windows.Foundation.UniversalApiContract, 4.0),
+        threading(both)
+    ]
+    runtimeclass GameControllerFactoryManager
+    {
+    }
 }




More information about the wine-cvs mailing list