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