123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683 |
- /*
- * 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
- #ifndef DO_NO_IMPORTS
- 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";
- #endif
- 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;
- }
- }
|