| /* | |
| * Copyright 2021 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 "asyncinfo.idl"; | |
| import "eventtoken.idl"; | |
| import "windowscontracts.idl"; | |
| import "windows.foundation.idl"; | |
| import "windows.devices.haptics.idl"; | |
| import "windows.gaming.input.forcefeedback.idl"; | |
| import "windows.system.idl"; | |
| import "windows.devices.power.idl"; | |
| namespace Windows.Gaming.Input { | |
| typedef enum ArcadeStickButtons ArcadeStickButtons; | |
| typedef enum FlightStickButtons FlightStickButtons; | |
| typedef enum GamepadButtons GamepadButtons; | |
| typedef enum GameControllerButtonLabel GameControllerButtonLabel; | |
| typedef enum GameControllerSwitchKind GameControllerSwitchKind; | |
| typedef enum GameControllerSwitchPosition GameControllerSwitchPosition; | |
| typedef enum RacingWheelButtons RacingWheelButtons; | |
| typedef struct ArcadeStickReading ArcadeStickReading; | |
| typedef struct FlightStickReading FlightStickReading; | |
| typedef struct GamepadReading GamepadReading; | |
| typedef struct GamepadVibration GamepadVibration; | |
| typedef struct RacingWheelReading RacingWheelReading; | |
| interface IArcadeStick; | |
| interface IArcadeStickStatics; | |
| interface IArcadeStickStatics2; | |
| interface IFlightStick; | |
| interface IFlightStickStatics; | |
| interface IGameController; | |
| interface IGameControllerBatteryInfo; | |
| interface IGamepad; | |
| interface IGamepad2; | |
| interface IGamepadStatics; | |
| interface IGamepadStatics2; | |
| interface IRacingWheel; | |
| interface IRacingWheelStatics; | |
| interface IRacingWheelStatics2; | |
| interface IRawGameController; | |
| interface IRawGameController2; | |
| runtimeclass ArcadeStick; | |
| runtimeclass FlightStick; | |
| runtimeclass Gamepad; | |
| runtimeclass Headset; | |
| runtimeclass RacingWheel; | |
| runtimeclass RawGameController; | |
| declare { | |
| interface Windows.Foundation.EventHandler<Windows.Gaming.Input.ArcadeStick *>; | |
| interface Windows.Foundation.EventHandler<Windows.Gaming.Input.FlightStick *>; | |
| interface Windows.Foundation.EventHandler<Windows.Gaming.Input.Gamepad *>; | |
| interface Windows.Foundation.EventHandler<Windows.Gaming.Input.RacingWheel *>; | |
| interface Windows.Foundation.EventHandler<Windows.Gaming.Input.RawGameController *>; | |
| interface Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.Gaming.Input.Headset *>; | |
| interface Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.System.UserChangedEventArgs *>; | |
| interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.ArcadeStick *>; | |
| interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.ArcadeStick *>; | |
| interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ArcadeStick *>; | |
| interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.FlightStick *>; | |
| interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.FlightStick *>; | |
| interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.FlightStick *>; | |
| interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.Gamepad *>; | |
| interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.Gamepad *>; | |
| interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.Gamepad *>; | |
| interface Windows.Foundation.Collections.IVector<Windows.Gaming.Input.Gamepad *>; | |
| interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.RacingWheel *>; | |
| interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.RacingWheel *>; | |
| interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.RacingWheel *>; | |
| interface Windows.Foundation.Collections.IVector<Windows.Gaming.Input.RacingWheel *>; | |
| interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.RawGameController *>; | |
| interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.RawGameController *>; | |
| interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.RawGameController *>; | |
| interface Windows.Foundation.Collections.IVector<Windows.Gaming.Input.RawGameController *>; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| flags | |
| ] | |
| enum ArcadeStickButtons | |
| { | |
| None = 0x0, | |
| StickUp = 0x1, | |
| StickDown = 0x2, | |
| StickLeft = 0x4, | |
| StickRight = 0x8, | |
| Action1 = 0x10, | |
| Action2 = 0x20, | |
| Action3 = 0x40, | |
| Action4 = 0x80, | |
| Action5 = 0x100, | |
| Action6 = 0x200, | |
| Special1 = 0x400, | |
| Special2 = 0x800 | |
| }; | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 4.0), | |
| flags | |
| ] | |
| enum FlightStickButtons | |
| { | |
| None = 0x0, | |
| FirePrimary = 0x1, | |
| FireSecondary = 0x2, | |
| }; | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| flags | |
| ] | |
| enum GamepadButtons | |
| { | |
| None = 0x0, | |
| Menu = 0x1, | |
| View = 0x2, | |
| A = 0x4, | |
| B = 0x8, | |
| X = 0x10, | |
| Y = 0x20, | |
| DPadUp = 0x40, | |
| DPadDown = 0x80, | |
| DPadLeft = 0x100, | |
| DPadRight = 0x200, | |
| LeftShoulder = 0x400, | |
| RightShoulder = 0x800, | |
| LeftThumbstick = 0x1000, | |
| RightThumbstick = 0x2000, | |
| [contract(Windows.Foundation.UniversalApiContract, 3.0)] | |
| Paddle1 = 0x4000, | |
| [contract(Windows.Foundation.UniversalApiContract, 3.0)] | |
| Paddle2 = 0x8000, | |
| [contract(Windows.Foundation.UniversalApiContract, 3.0)] | |
| Paddle3 = 0x10000, | |
| [contract(Windows.Foundation.UniversalApiContract, 3.0)] | |
| Paddle4 = 0x20000 | |
| }; | |
| [contract(Windows.Foundation.UniversalApiContract, 3.0)] | |
| enum GameControllerButtonLabel | |
| { | |
| None = 0, | |
| XboxBack = 1, | |
| XboxStart = 2, | |
| XboxMenu = 3, | |
| XboxView = 4, | |
| XboxUp = 5, | |
| XboxDown = 6, | |
| XboxLeft = 7, | |
| XboxRight = 8, | |
| XboxA = 9, | |
| XboxB = 10, | |
| XboxX = 11, | |
| XboxY = 12, | |
| XboxLeftBumper = 13, | |
| XboxLeftTrigger = 14, | |
| XboxLeftStickButton = 15, | |
| XboxRightBumper = 16, | |
| XboxRightTrigger = 17, | |
| XboxRightStickButton = 18, | |
| XboxPaddle1 = 19, | |
| XboxPaddle2 = 20, | |
| XboxPaddle3 = 21, | |
| XboxPaddle4 = 22, | |
| Mode = 23, | |
| Select = 24, | |
| Menu = 25, | |
| View = 26, | |
| Back = 27, | |
| Start = 28, | |
| Options = 29, | |
| Share = 30, | |
| Up = 31, | |
| Down = 32, | |
| Left = 33, | |
| Right = 34, | |
| LetterA = 35, | |
| LetterB = 36, | |
| LetterC = 37, | |
| LetterL = 38, | |
| LetterR = 39, | |
| LetterX = 40, | |
| LetterY = 41, | |
| LetterZ = 42, | |
| Cross = 43, | |
| Circle = 44, | |
| Square = 45, | |
| Triangle = 46, | |
| LeftBumper = 47, | |
| LeftTrigger = 48, | |
| LeftStickButton = 49, | |
| Left1 = 50, | |
| Left2 = 51, | |
| Left3 = 52, | |
| RightBumper = 53, | |
| RightTrigger = 54, | |
| RightStickButton = 55, | |
| Right1 = 56, | |
| Right2 = 57, | |
| Right3 = 58, | |
| Paddle1 = 59, | |
| Paddle2 = 60, | |
| Paddle3 = 61, | |
| Paddle4 = 62, | |
| Plus = 63, | |
| Minus = 64, | |
| DownLeftArrow = 65, | |
| DialLeft = 66, | |
| DialRight = 67, | |
| Suspension = 68 | |
| }; | |
| [contract(Windows.Foundation.UniversalApiContract, 4.0)] | |
| enum GameControllerSwitchKind | |
| { | |
| TwoWay = 0, | |
| FourWay = 1, | |
| EightWay = 2 | |
| }; | |
| [contract(Windows.Foundation.UniversalApiContract, 4.0)] | |
| enum GameControllerSwitchPosition | |
| { | |
| Center = 0, | |
| Up = 1, | |
| UpRight = 2, | |
| Right = 3, | |
| DownRight = 4, | |
| Down = 5, | |
| DownLeft = 6, | |
| Left = 7, | |
| UpLeft = 8 | |
| }; | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| flags | |
| ] | |
| enum RacingWheelButtons | |
| { | |
| None = 0x0, | |
| PreviousGear = 0x1, | |
| NextGear = 0x2, | |
| DPadUp = 0x4, | |
| DPadDown = 0x8, | |
| DPadLeft = 0x10, | |
| DPadRight = 0x20, | |
| Button1 = 0x40, | |
| Button2 = 0x80, | |
| Button3 = 0x100, | |
| Button4 = 0x200, | |
| Button5 = 0x400, | |
| Button6 = 0x800, | |
| Button7 = 0x1000, | |
| Button8 = 0x2000, | |
| Button9 = 0x4000, | |
| Button10 = 0x8000, | |
| Button11 = 0x10000, | |
| Button12 = 0x20000, | |
| Button13 = 0x40000, | |
| Button14 = 0x80000, | |
| Button15 = 0x100000, | |
| Button16 = 0x200000, | |
| }; | |
| [contract(Windows.Foundation.UniversalApiContract, 3.0)] | |
| struct ArcadeStickReading | |
| { | |
| UINT64 Timestamp; | |
| Windows.Gaming.Input.ArcadeStickButtons Buttons; | |
| }; | |
| [contract(Windows.Foundation.UniversalApiContract, 4.0)] | |
| struct FlightStickReading | |
| { | |
| UINT64 Timestamp; | |
| Windows.Gaming.Input.FlightStickButtons Buttons; | |
| Windows.Gaming.Input.GameControllerSwitchPosition HatSwitch; | |
| DOUBLE Roll; | |
| DOUBLE Pitch; | |
| DOUBLE Yaw; | |
| DOUBLE Throttle; | |
| }; | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] | |
| struct GamepadReading | |
| { | |
| UINT64 Timestamp; | |
| Windows.Gaming.Input.GamepadButtons Buttons; | |
| DOUBLE LeftTrigger; | |
| DOUBLE RightTrigger; | |
| DOUBLE LeftThumbstickX; | |
| DOUBLE LeftThumbstickY; | |
| DOUBLE RightThumbstickX; | |
| DOUBLE RightThumbstickY; | |
| }; | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] | |
| struct GamepadVibration | |
| { | |
| DOUBLE LeftMotor; | |
| DOUBLE RightMotor; | |
| DOUBLE LeftTrigger; | |
| DOUBLE RightTrigger; | |
| }; | |
| [contract(Windows.Foundation.UniversalApiContract, 3.0)] | |
| struct RacingWheelReading | |
| { | |
| UINT64 Timestamp; | |
| Windows.Gaming.Input.RacingWheelButtons Buttons; | |
| INT32 PatternShifterGear; | |
| DOUBLE Wheel; | |
| DOUBLE Throttle; | |
| DOUBLE Brake; | |
| DOUBLE Clutch; | |
| DOUBLE Handbrake; | |
| }; | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| exclusiveto(Windows.Gaming.Input.ArcadeStick), | |
| uuid(b14a539d-befb-4c81-8051-15ecf3b13036) | |
| ] | |
| interface IArcadeStick : IInspectable | |
| requires Windows.Gaming.Input.IGameController | |
| { | |
| HRESULT GetButtonLabel([in] Windows.Gaming.Input.ArcadeStickButtons button, | |
| [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value); | |
| HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.ArcadeStickReading *value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| exclusiveto(Windows.Gaming.Input.ArcadeStick), | |
| uuid(5c37b8c8-37b1-4ad8-9458-200f1a30018e) | |
| ] | |
| interface IArcadeStickStatics : IInspectable | |
| { | |
| [eventadd] HRESULT ArcadeStickAdded([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.ArcadeStick *> *value, | |
| [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT ArcadeStickAdded([in] EventRegistrationToken token); | |
| [eventadd] HRESULT ArcadeStickRemoved([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.ArcadeStick *> *value, | |
| [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT ArcadeStickRemoved([in] EventRegistrationToken token); | |
| [propget] HRESULT ArcadeSticks([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ArcadeStick *> **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 4.0), | |
| exclusiveto(Windows.Gaming.Input.ArcadeStick), | |
| uuid(52b5d744-bb86-445a-b59c-596f0e2a49df) | |
| ] | |
| interface IArcadeStickStatics2 : IInspectable | |
| requires Windows.Gaming.Input.IArcadeStickStatics | |
| { | |
| HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *controller, | |
| [out, retval] Windows.Gaming.Input.ArcadeStick **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 4.0), | |
| exclusiveto(Windows.Gaming.Input.FlightStick), | |
| uuid(b4a2c01c-b83b-4459-a1a9-97b03c33da7c) | |
| ] | |
| interface IFlightStick : IInspectable | |
| requires Windows.Gaming.Input.IGameController | |
| { | |
| [propget] HRESULT HatSwitchKind([out, retval] Windows.Gaming.Input.GameControllerSwitchKind *value); | |
| HRESULT GetButtonLabel([in] Windows.Gaming.Input.FlightStickButtons button, | |
| [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value); | |
| HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.FlightStickReading *value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 4.0), | |
| exclusiveto(Windows.Gaming.Input.FlightStick), | |
| uuid(5514924a-fecc-435e-83dc-5cec8a18a520) | |
| ] | |
| interface IFlightStickStatics : IInspectable | |
| { | |
| [eventadd] HRESULT FlightStickAdded([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.FlightStick *> *value, | |
| [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT FlightStickAdded([in] EventRegistrationToken token); | |
| [eventadd] HRESULT FlightStickRemoved([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.FlightStick *> *value, | |
| [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT FlightStickRemoved([in] EventRegistrationToken token); | |
| [propget] HRESULT FlightSticks([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.FlightStick *> **value); | |
| HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *controller, | |
| [out, retval] Windows.Gaming.Input.FlightStick **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| uuid(1baf6522-5f64-42c5-8267-b9fe2215bfbd) | |
| ] | |
| interface IGameController : IInspectable | |
| { | |
| [eventadd] HRESULT HeadsetConnected([in] Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.Gaming.Input.Headset *> *handler, | |
| [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT HeadsetConnected([in] EventRegistrationToken token); | |
| [eventadd] HRESULT HeadsetDisconnected([in] Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.Gaming.Input.Headset *> *handler, | |
| [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT HeadsetDisconnected([in] EventRegistrationToken token); | |
| [eventadd] HRESULT UserChanged([in] Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.System.UserChangedEventArgs *> *handler, | |
| [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT UserChanged([in] EventRegistrationToken token); | |
| [propget] HRESULT Headset([out, retval] Windows.Gaming.Input.Headset **value); | |
| [propget] HRESULT IsWireless([out, retval] boolean *value); | |
| [propget] HRESULT User([out, retval] Windows.System.User **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Gaming.Input.Gamepad), | |
| uuid(bc7bb43c-0a69-3903-9e9d-a50f86a45de5) | |
| ] | |
| interface IGamepad : IInspectable | |
| requires Windows.Gaming.Input.IGameController | |
| { | |
| [propget] HRESULT Vibration([out, retval] Windows.Gaming.Input.GamepadVibration *value); | |
| [propput] HRESULT Vibration([in] Windows.Gaming.Input.GamepadVibration value); | |
| HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.GamepadReading *value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| exclusiveto(Windows.Gaming.Input.Gamepad), | |
| uuid(3c1689bd-5915-4245-b0c0-c89fae0308ff) | |
| ] | |
| interface IGamepad2 : IInspectable | |
| requires Windows.Gaming.Input.IGamepad, | |
| Windows.Gaming.Input.IGameController | |
| { | |
| HRESULT GetButtonLabel([in] Windows.Gaming.Input.GamepadButtons button, | |
| [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| exclusiveto(Windows.Gaming.Input.RacingWheel), | |
| uuid(f546656f-e106-4c82-a90f-554012904b85) | |
| ] | |
| interface IRacingWheel : IInspectable | |
| requires Windows.Gaming.Input.IGameController | |
| { | |
| [propget] HRESULT HasClutch([out, retval] boolean *value); | |
| [propget] HRESULT HasHandbrake([out, retval] boolean *value); | |
| [propget] HRESULT HasPatternShifter([out, retval] boolean *value); | |
| [propget] HRESULT MaxPatternShifterGear([out, retval] INT32 *value); | |
| [propget] HRESULT MaxWheelAngle([out, retval] DOUBLE *value); | |
| [propget] HRESULT WheelMotor([out, retval] Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor **value); | |
| HRESULT GetButtonLabel([in] Windows.Gaming.Input.RacingWheelButtons button, [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value); | |
| HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.RacingWheelReading *value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| exclusiveto(Windows.Gaming.Input.RacingWheel), | |
| uuid(3ac12cd5-581b-4936-9f94-69f1e6514c7d) | |
| ] | |
| interface IRacingWheelStatics : IInspectable | |
| { | |
| [eventadd] HRESULT RacingWheelAdded([in] Windows.Foundation.EventHandler<RacingWheel *> *value, [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT RacingWheelAdded([in] EventRegistrationToken token); | |
| [eventadd] HRESULT RacingWheelRemoved([in] Windows.Foundation.EventHandler<RacingWheel *> *value, [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT RacingWheelRemoved([in] EventRegistrationToken token); | |
| [propget] HRESULT RacingWheels([out, retval] Windows.Foundation.Collections.IVectorView<RacingWheel *> **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 4.0), | |
| exclusiveto(Windows.Gaming.Input.RacingWheel), | |
| uuid(e666bcaa-edfd-4323-a9f6-3c384048d1ed) | |
| ] | |
| interface IRacingWheelStatics2 : IInspectable | |
| requires Windows.Gaming.Input.IRacingWheelStatics | |
| { | |
| HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *controller, | |
| [out, retval] Windows.Gaming.Input.RacingWheel **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 4.0), | |
| exclusiveto(Windows.Gaming.Input.RawGameController), | |
| uuid(7cad6d91-a7e1-4f71-9a78-33e9c5dfea62) | |
| ] | |
| interface IRawGameController : IInspectable | |
| requires Windows.Gaming.Input.IGameController | |
| { | |
| [propget] HRESULT AxisCount([out, retval] INT32 *value); | |
| [propget] HRESULT ButtonCount([out, retval] INT32 *value); | |
| [propget] HRESULT ForceFeedbackMotors([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor *> **value); | |
| [propget] HRESULT HardwareProductId([out, retval] UINT16 *value); | |
| [propget] HRESULT HardwareVendorId([out, retval] UINT16 *value); | |
| [propget] HRESULT SwitchCount([out, retval] INT32 *value); | |
| HRESULT GetButtonLabel([in] INT32 index, [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value); | |
| HRESULT GetCurrentReading([in] UINT32 buttons_size, [out, size_is(buttons_size)] boolean *buttons, | |
| [in] UINT32 switches_size, [out, size_is(switches_size)] Windows.Gaming.Input.GameControllerSwitchPosition *switches, | |
| [in] UINT32 axes_size, [out, size_is(axes_size)] DOUBLE *axes, | |
| [out, retval] UINT64 *timestamp); | |
| HRESULT GetSwitchKind([in] INT32 index, [out, retval] Windows.Gaming.Input.GameControllerSwitchKind *value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 5.0), | |
| exclusiveto(Windows.Gaming.Input.RawGameController), | |
| uuid(43c0c035-bb73-4756-a787-3ed6bea617bd) | |
| ] | |
| interface IRawGameController2 : IInspectable | |
| requires Windows.Gaming.Input.IRawGameController, | |
| Windows.Gaming.Input.IGameController | |
| { | |
| [propget] HRESULT SimpleHapticsControllers([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Haptics.SimpleHapticsController *> **value); | |
| [propget] HRESULT NonRoamableId([out, retval] HSTRING *value); | |
| [propget] HRESULT DisplayName([out, retval] HSTRING *value); | |
| } | |
| [ | |
| object, | |
| uuid(8bbce529-d49c-39e9-9560-e47dde96b7c8) | |
| ] | |
| interface IGamepadStatics : IInspectable | |
| { | |
| [eventadd] HRESULT GamepadAdded([in] Windows.Foundation.EventHandler<Gamepad *> *value, [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT GamepadAdded([in] EventRegistrationToken token); | |
| [eventadd] HRESULT GamepadRemoved([in] Windows.Foundation.EventHandler<Gamepad *> *value, [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT GamepadRemoved([in] EventRegistrationToken token); | |
| [propget] HRESULT Gamepads([out, retval] Windows.Foundation.Collections.IVectorView<Gamepad *> **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 4.0), | |
| exclusiveto(Windows.Gaming.Input.Gamepad), | |
| uuid(42676dc5-0856-47c4-9213-b395504c3a3c) | |
| ] | |
| interface IGamepadStatics2 : IInspectable | |
| requires Windows.Gaming.Input.IGamepadStatics | |
| { | |
| HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *controller, | |
| [out, retval] Windows.Gaming.Input.Gamepad **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Gaming.Input.Headset), | |
| uuid(3fd156ef-6925-3fa8-9181-029c5223ae3b) | |
| ] | |
| interface IHeadset : IInspectable | |
| { | |
| [propget] HRESULT CaptureDeviceId([out, retval] HSTRING *value); | |
| [propget] HRESULT RenderDeviceId([out, retval] HSTRING *value); | |
| } | |
| [ | |
| object, | |
| uuid(eb8d0792-e95a-4b19-afc7-0a59f8bf759e) | |
| ] | |
| interface IRawGameControllerStatics : IInspectable | |
| { | |
| [eventadd] HRESULT RawGameControllerAdded([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.RawGameController *> *handler, | |
| [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT RawGameControllerAdded([in] EventRegistrationToken token); | |
| [eventadd] HRESULT RawGameControllerRemoved([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.RawGameController *> *handler, | |
| [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT RawGameControllerRemoved([in] EventRegistrationToken token); | |
| [propget] HRESULT RawGameControllers([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.RawGameController *> **value); | |
| HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *game_controller, [out, retval] Windows.Gaming.Input.RawGameController **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 4.0), | |
| uuid(dcecc681-3963-4da6-955d-553f3b6f6161) | |
| ] | |
| interface IGameControllerBatteryInfo : IInspectable | |
| { | |
| HRESULT TryGetBatteryReport([out, retval] Windows.Devices.Power.BatteryReport **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| marshaling_behavior(agile), | |
| static(Windows.Gaming.Input.IArcadeStickStatics, Windows.Foundation.UniversalApiContract, 3.0), | |
| static(Windows.Gaming.Input.IArcadeStickStatics2, Windows.Foundation.UniversalApiContract, 4.0), | |
| threading(both) | |
| ] | |
| runtimeclass ArcadeStick | |
| { | |
| [default] interface Windows.Gaming.Input.IArcadeStick; | |
| interface Windows.Gaming.Input.IGameController; | |
| [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 4.0), | |
| marshaling_behavior(agile), | |
| static(Windows.Gaming.Input.IFlightStickStatics, Windows.Foundation.UniversalApiContract, 4.0), | |
| threading(both) | |
| ] | |
| runtimeclass FlightStick | |
| { | |
| [default] interface Windows.Gaming.Input.IFlightStick; | |
| interface Windows.Gaming.Input.IGameController; | |
| interface Windows.Gaming.Input.IGameControllerBatteryInfo; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| marshaling_behavior(agile), | |
| static(Windows.Gaming.Input.IGamepadStatics, Windows.Foundation.UniversalApiContract, 1.0), | |
| static(Windows.Gaming.Input.IGamepadStatics2, Windows.Foundation.UniversalApiContract, 4.0), | |
| threading(both) | |
| ] | |
| runtimeclass Gamepad | |
| { | |
| [default] interface Windows.Gaming.Input.IGamepad; | |
| interface Windows.Gaming.Input.IGameController; | |
| [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Gaming.Input.IGamepad2; | |
| [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| marshaling_behavior(agile), | |
| threading(both) | |
| ] | |
| runtimeclass Headset | |
| { | |
| [default] interface Windows.Gaming.Input.IHeadset; | |
| [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| marshaling_behavior(agile), | |
| static(Windows.Gaming.Input.IRacingWheelStatics, Windows.Foundation.UniversalApiContract, 3.0), | |
| static(Windows.Gaming.Input.IRacingWheelStatics2, Windows.Foundation.UniversalApiContract, 4.0), | |
| threading(both) | |
| ] | |
| runtimeclass RacingWheel | |
| { | |
| [default] interface Windows.Gaming.Input.IRacingWheel; | |
| interface Windows.Gaming.Input.IGameController; | |
| [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 4.0), | |
| marshaling_behavior(agile), | |
| static(Windows.Gaming.Input.IRawGameControllerStatics, Windows.Foundation.UniversalApiContract, 4.0), | |
| threading(both) | |
| ] | |
| runtimeclass RawGameController | |
| { | |
| [default] interface Windows.Gaming.Input.IRawGameController; | |
| interface Windows.Gaming.Input.IGameController; | |
| interface Windows.Gaming.Input.IGameControllerBatteryInfo; | |
| [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Gaming.Input.IRawGameController2; | |
| } | |
| } |