wine/include/windows.gaming.input.idl
Rémi Bernon e8b06de490 include: Add Windows.Gaming.Input.IGamepad2 interface declaration.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
2022-06-08 15:04:56 +02:00

683 lines
28 KiB
Text

/*
* 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;
}
}