win32u: Avoid unnecessary copy of adapter path and device name.
[wine.git] / include / windows.gaming.input.idl
blob5fc5265247df208af1d5f6bf90fccfe625ba5b25
1 /*
2 * Copyright 2021 RĂ©mi Bernon for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifdef __WIDL__
20 #pragma winrt ns_prefix
21 #endif
23 #ifndef DO_NO_IMPORTS
24 import "inspectable.idl";
25 import "asyncinfo.idl";
26 import "eventtoken.idl";
27 import "windowscontracts.idl";
28 import "windows.foundation.idl";
29 import "windows.devices.haptics.idl";
30 import "windows.gaming.input.forcefeedback.idl";
31 import "windows.system.idl";
32 import "windows.devices.power.idl";
33 #endif
35 namespace Windows.Gaming.Input {
36 typedef enum ArcadeStickButtons ArcadeStickButtons;
37 typedef enum FlightStickButtons FlightStickButtons;
38 typedef enum GamepadButtons GamepadButtons;
39 typedef enum GameControllerButtonLabel GameControllerButtonLabel;
40 typedef enum GameControllerSwitchKind GameControllerSwitchKind;
41 typedef enum GameControllerSwitchPosition GameControllerSwitchPosition;
42 typedef enum RacingWheelButtons RacingWheelButtons;
43 typedef struct ArcadeStickReading ArcadeStickReading;
44 typedef struct FlightStickReading FlightStickReading;
45 typedef struct GamepadReading GamepadReading;
46 typedef struct GamepadVibration GamepadVibration;
47 typedef struct RacingWheelReading RacingWheelReading;
48 interface IArcadeStick;
49 interface IArcadeStickStatics;
50 interface IArcadeStickStatics2;
51 interface IFlightStick;
52 interface IFlightStickStatics;
53 interface IGameController;
54 interface IGameControllerBatteryInfo;
55 interface IGamepad;
56 interface IGamepad2;
57 interface IGamepadStatics;
58 interface IGamepadStatics2;
59 interface IRacingWheel;
60 interface IRacingWheelStatics;
61 interface IRacingWheelStatics2;
62 interface IRawGameController;
63 interface IRawGameController2;
64 runtimeclass ArcadeStick;
65 runtimeclass FlightStick;
66 runtimeclass Gamepad;
67 runtimeclass Headset;
68 runtimeclass RacingWheel;
69 runtimeclass RawGameController;
71 declare {
72 interface Windows.Foundation.EventHandler<Windows.Gaming.Input.ArcadeStick *>;
73 interface Windows.Foundation.EventHandler<Windows.Gaming.Input.FlightStick *>;
74 interface Windows.Foundation.EventHandler<Windows.Gaming.Input.Gamepad *>;
75 interface Windows.Foundation.EventHandler<Windows.Gaming.Input.RacingWheel *>;
76 interface Windows.Foundation.EventHandler<Windows.Gaming.Input.RawGameController *>;
77 interface Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.Gaming.Input.Headset *>;
78 interface Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.System.UserChangedEventArgs *>;
79 interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.ArcadeStick *>;
80 interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.ArcadeStick *>;
81 interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ArcadeStick *>;
82 interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.FlightStick *>;
83 interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.FlightStick *>;
84 interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.FlightStick *>;
85 interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.Gamepad *>;
86 interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.Gamepad *>;
87 interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.Gamepad *>;
88 interface Windows.Foundation.Collections.IVector<Windows.Gaming.Input.Gamepad *>;
89 interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.RacingWheel *>;
90 interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.RacingWheel *>;
91 interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.RacingWheel *>;
92 interface Windows.Foundation.Collections.IVector<Windows.Gaming.Input.RacingWheel *>;
93 interface Windows.Foundation.Collections.IIterator<Windows.Gaming.Input.RawGameController *>;
94 interface Windows.Foundation.Collections.IIterable<Windows.Gaming.Input.RawGameController *>;
95 interface Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.RawGameController *>;
96 interface Windows.Foundation.Collections.IVector<Windows.Gaming.Input.RawGameController *>;
100 contract(Windows.Foundation.UniversalApiContract, 3.0),
101 flags
103 enum ArcadeStickButtons
105 None = 0x0,
106 StickUp = 0x1,
107 StickDown = 0x2,
108 StickLeft = 0x4,
109 StickRight = 0x8,
110 Action1 = 0x10,
111 Action2 = 0x20,
112 Action3 = 0x40,
113 Action4 = 0x80,
114 Action5 = 0x100,
115 Action6 = 0x200,
116 Special1 = 0x400,
117 Special2 = 0x800
121 contract(Windows.Foundation.UniversalApiContract, 4.0),
122 flags
124 enum FlightStickButtons
126 None = 0x0,
127 FirePrimary = 0x1,
128 FireSecondary = 0x2,
132 contract(Windows.Foundation.UniversalApiContract, 1.0),
133 flags
135 enum GamepadButtons
137 None = 0x0,
138 Menu = 0x1,
139 View = 0x2,
140 A = 0x4,
141 B = 0x8,
142 X = 0x10,
143 Y = 0x20,
144 DPadUp = 0x40,
145 DPadDown = 0x80,
146 DPadLeft = 0x100,
147 DPadRight = 0x200,
148 LeftShoulder = 0x400,
149 RightShoulder = 0x800,
150 LeftThumbstick = 0x1000,
151 RightThumbstick = 0x2000,
152 [contract(Windows.Foundation.UniversalApiContract, 3.0)]
153 Paddle1 = 0x4000,
154 [contract(Windows.Foundation.UniversalApiContract, 3.0)]
155 Paddle2 = 0x8000,
156 [contract(Windows.Foundation.UniversalApiContract, 3.0)]
157 Paddle3 = 0x10000,
158 [contract(Windows.Foundation.UniversalApiContract, 3.0)]
159 Paddle4 = 0x20000
162 [contract(Windows.Foundation.UniversalApiContract, 3.0)]
163 enum GameControllerButtonLabel
165 None = 0,
166 XboxBack = 1,
167 XboxStart = 2,
168 XboxMenu = 3,
169 XboxView = 4,
170 XboxUp = 5,
171 XboxDown = 6,
172 XboxLeft = 7,
173 XboxRight = 8,
174 XboxA = 9,
175 XboxB = 10,
176 XboxX = 11,
177 XboxY = 12,
178 XboxLeftBumper = 13,
179 XboxLeftTrigger = 14,
180 XboxLeftStickButton = 15,
181 XboxRightBumper = 16,
182 XboxRightTrigger = 17,
183 XboxRightStickButton = 18,
184 XboxPaddle1 = 19,
185 XboxPaddle2 = 20,
186 XboxPaddle3 = 21,
187 XboxPaddle4 = 22,
188 Mode = 23,
189 Select = 24,
190 Menu = 25,
191 View = 26,
192 Back = 27,
193 Start = 28,
194 Options = 29,
195 Share = 30,
196 Up = 31,
197 Down = 32,
198 Left = 33,
199 Right = 34,
200 LetterA = 35,
201 LetterB = 36,
202 LetterC = 37,
203 LetterL = 38,
204 LetterR = 39,
205 LetterX = 40,
206 LetterY = 41,
207 LetterZ = 42,
208 Cross = 43,
209 Circle = 44,
210 Square = 45,
211 Triangle = 46,
212 LeftBumper = 47,
213 LeftTrigger = 48,
214 LeftStickButton = 49,
215 Left1 = 50,
216 Left2 = 51,
217 Left3 = 52,
218 RightBumper = 53,
219 RightTrigger = 54,
220 RightStickButton = 55,
221 Right1 = 56,
222 Right2 = 57,
223 Right3 = 58,
224 Paddle1 = 59,
225 Paddle2 = 60,
226 Paddle3 = 61,
227 Paddle4 = 62,
228 Plus = 63,
229 Minus = 64,
230 DownLeftArrow = 65,
231 DialLeft = 66,
232 DialRight = 67,
233 Suspension = 68
236 [contract(Windows.Foundation.UniversalApiContract, 4.0)]
237 enum GameControllerSwitchKind
239 TwoWay = 0,
240 FourWay = 1,
241 EightWay = 2
244 [contract(Windows.Foundation.UniversalApiContract, 4.0)]
245 enum GameControllerSwitchPosition
247 Center = 0,
248 Up = 1,
249 UpRight = 2,
250 Right = 3,
251 DownRight = 4,
252 Down = 5,
253 DownLeft = 6,
254 Left = 7,
255 UpLeft = 8
259 contract(Windows.Foundation.UniversalApiContract, 3.0),
260 flags
262 enum RacingWheelButtons
264 None = 0x0,
265 PreviousGear = 0x1,
266 NextGear = 0x2,
267 DPadUp = 0x4,
268 DPadDown = 0x8,
269 DPadLeft = 0x10,
270 DPadRight = 0x20,
271 Button1 = 0x40,
272 Button2 = 0x80,
273 Button3 = 0x100,
274 Button4 = 0x200,
275 Button5 = 0x400,
276 Button6 = 0x800,
277 Button7 = 0x1000,
278 Button8 = 0x2000,
279 Button9 = 0x4000,
280 Button10 = 0x8000,
281 Button11 = 0x10000,
282 Button12 = 0x20000,
283 Button13 = 0x40000,
284 Button14 = 0x80000,
285 Button15 = 0x100000,
286 Button16 = 0x200000,
289 [contract(Windows.Foundation.UniversalApiContract, 3.0)]
290 struct ArcadeStickReading
292 UINT64 Timestamp;
293 Windows.Gaming.Input.ArcadeStickButtons Buttons;
296 [contract(Windows.Foundation.UniversalApiContract, 4.0)]
297 struct FlightStickReading
299 UINT64 Timestamp;
300 Windows.Gaming.Input.FlightStickButtons Buttons;
301 Windows.Gaming.Input.GameControllerSwitchPosition HatSwitch;
302 DOUBLE Roll;
303 DOUBLE Pitch;
304 DOUBLE Yaw;
305 DOUBLE Throttle;
308 [contract(Windows.Foundation.UniversalApiContract, 1.0)]
309 struct GamepadReading
311 UINT64 Timestamp;
312 Windows.Gaming.Input.GamepadButtons Buttons;
313 DOUBLE LeftTrigger;
314 DOUBLE RightTrigger;
315 DOUBLE LeftThumbstickX;
316 DOUBLE LeftThumbstickY;
317 DOUBLE RightThumbstickX;
318 DOUBLE RightThumbstickY;
321 [contract(Windows.Foundation.UniversalApiContract, 1.0)]
322 struct GamepadVibration
324 DOUBLE LeftMotor;
325 DOUBLE RightMotor;
326 DOUBLE LeftTrigger;
327 DOUBLE RightTrigger;
330 [contract(Windows.Foundation.UniversalApiContract, 3.0)]
331 struct RacingWheelReading
333 UINT64 Timestamp;
334 Windows.Gaming.Input.RacingWheelButtons Buttons;
335 INT32 PatternShifterGear;
336 DOUBLE Wheel;
337 DOUBLE Throttle;
338 DOUBLE Brake;
339 DOUBLE Clutch;
340 DOUBLE Handbrake;
344 contract(Windows.Foundation.UniversalApiContract, 3.0),
345 exclusiveto(Windows.Gaming.Input.ArcadeStick),
346 uuid(b14a539d-befb-4c81-8051-15ecf3b13036)
348 interface IArcadeStick : IInspectable
349 requires Windows.Gaming.Input.IGameController
351 HRESULT GetButtonLabel([in] Windows.Gaming.Input.ArcadeStickButtons button,
352 [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value);
353 HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.ArcadeStickReading *value);
357 contract(Windows.Foundation.UniversalApiContract, 3.0),
358 exclusiveto(Windows.Gaming.Input.ArcadeStick),
359 uuid(5c37b8c8-37b1-4ad8-9458-200f1a30018e)
361 interface IArcadeStickStatics : IInspectable
363 [eventadd] HRESULT ArcadeStickAdded([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.ArcadeStick *> *value,
364 [out, retval] EventRegistrationToken *token);
365 [eventremove] HRESULT ArcadeStickAdded([in] EventRegistrationToken token);
366 [eventadd] HRESULT ArcadeStickRemoved([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.ArcadeStick *> *value,
367 [out, retval] EventRegistrationToken *token);
368 [eventremove] HRESULT ArcadeStickRemoved([in] EventRegistrationToken token);
369 [propget] HRESULT ArcadeSticks([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ArcadeStick *> **value);
373 contract(Windows.Foundation.UniversalApiContract, 4.0),
374 exclusiveto(Windows.Gaming.Input.ArcadeStick),
375 uuid(52b5d744-bb86-445a-b59c-596f0e2a49df)
377 interface IArcadeStickStatics2 : IInspectable
378 requires Windows.Gaming.Input.IArcadeStickStatics
380 HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *controller,
381 [out, retval] Windows.Gaming.Input.ArcadeStick **value);
385 contract(Windows.Foundation.UniversalApiContract, 4.0),
386 exclusiveto(Windows.Gaming.Input.FlightStick),
387 uuid(b4a2c01c-b83b-4459-a1a9-97b03c33da7c)
389 interface IFlightStick : IInspectable
390 requires Windows.Gaming.Input.IGameController
392 [propget] HRESULT HatSwitchKind([out, retval] Windows.Gaming.Input.GameControllerSwitchKind *value);
393 HRESULT GetButtonLabel([in] Windows.Gaming.Input.FlightStickButtons button,
394 [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value);
395 HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.FlightStickReading *value);
399 contract(Windows.Foundation.UniversalApiContract, 4.0),
400 exclusiveto(Windows.Gaming.Input.FlightStick),
401 uuid(5514924a-fecc-435e-83dc-5cec8a18a520)
403 interface IFlightStickStatics : IInspectable
405 [eventadd] HRESULT FlightStickAdded([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.FlightStick *> *value,
406 [out, retval] EventRegistrationToken *token);
407 [eventremove] HRESULT FlightStickAdded([in] EventRegistrationToken token);
408 [eventadd] HRESULT FlightStickRemoved([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.FlightStick *> *value,
409 [out, retval] EventRegistrationToken *token);
410 [eventremove] HRESULT FlightStickRemoved([in] EventRegistrationToken token);
411 [propget] HRESULT FlightSticks([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.FlightStick *> **value);
412 HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *controller,
413 [out, retval] Windows.Gaming.Input.FlightStick **value);
417 contract(Windows.Foundation.UniversalApiContract, 1.0),
418 uuid(1baf6522-5f64-42c5-8267-b9fe2215bfbd)
420 interface IGameController : IInspectable
422 [eventadd] HRESULT HeadsetConnected([in] Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.Gaming.Input.Headset *> *handler,
423 [out, retval] EventRegistrationToken *token);
424 [eventremove] HRESULT HeadsetConnected([in] EventRegistrationToken token);
425 [eventadd] HRESULT HeadsetDisconnected([in] Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.Gaming.Input.Headset *> *handler,
426 [out, retval] EventRegistrationToken *token);
427 [eventremove] HRESULT HeadsetDisconnected([in] EventRegistrationToken token);
428 [eventadd] HRESULT UserChanged([in] Windows.Foundation.TypedEventHandler<Windows.Gaming.Input.IGameController *, Windows.System.UserChangedEventArgs *> *handler,
429 [out, retval] EventRegistrationToken *token);
430 [eventremove] HRESULT UserChanged([in] EventRegistrationToken token);
431 [propget] HRESULT Headset([out, retval] Windows.Gaming.Input.Headset **value);
432 [propget] HRESULT IsWireless([out, retval] boolean *value);
433 [propget] HRESULT User([out, retval] Windows.System.User **value);
437 contract(Windows.Foundation.UniversalApiContract, 1.0),
438 exclusiveto(Windows.Gaming.Input.Gamepad),
439 uuid(bc7bb43c-0a69-3903-9e9d-a50f86a45de5)
441 interface IGamepad : IInspectable
442 requires Windows.Gaming.Input.IGameController
444 [propget] HRESULT Vibration([out, retval] Windows.Gaming.Input.GamepadVibration *value);
445 [propput] HRESULT Vibration([in] Windows.Gaming.Input.GamepadVibration value);
446 HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.GamepadReading *value);
450 contract(Windows.Foundation.UniversalApiContract, 3.0),
451 exclusiveto(Windows.Gaming.Input.Gamepad),
452 uuid(3c1689bd-5915-4245-b0c0-c89fae0308ff)
454 interface IGamepad2 : IInspectable
455 requires Windows.Gaming.Input.IGamepad,
456 Windows.Gaming.Input.IGameController
458 HRESULT GetButtonLabel([in] Windows.Gaming.Input.GamepadButtons button,
459 [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value);
463 contract(Windows.Foundation.UniversalApiContract, 3.0),
464 exclusiveto(Windows.Gaming.Input.RacingWheel),
465 uuid(f546656f-e106-4c82-a90f-554012904b85)
467 interface IRacingWheel : IInspectable
468 requires Windows.Gaming.Input.IGameController
470 [propget] HRESULT HasClutch([out, retval] boolean *value);
471 [propget] HRESULT HasHandbrake([out, retval] boolean *value);
472 [propget] HRESULT HasPatternShifter([out, retval] boolean *value);
473 [propget] HRESULT MaxPatternShifterGear([out, retval] INT32 *value);
474 [propget] HRESULT MaxWheelAngle([out, retval] DOUBLE *value);
475 [propget] HRESULT WheelMotor([out, retval] Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor **value);
476 HRESULT GetButtonLabel([in] Windows.Gaming.Input.RacingWheelButtons button, [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value);
477 HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.RacingWheelReading *value);
481 contract(Windows.Foundation.UniversalApiContract, 3.0),
482 exclusiveto(Windows.Gaming.Input.RacingWheel),
483 uuid(3ac12cd5-581b-4936-9f94-69f1e6514c7d)
485 interface IRacingWheelStatics : IInspectable
487 [eventadd] HRESULT RacingWheelAdded([in] Windows.Foundation.EventHandler<RacingWheel *> *value, [out, retval] EventRegistrationToken *token);
488 [eventremove] HRESULT RacingWheelAdded([in] EventRegistrationToken token);
489 [eventadd] HRESULT RacingWheelRemoved([in] Windows.Foundation.EventHandler<RacingWheel *> *value, [out, retval] EventRegistrationToken *token);
490 [eventremove] HRESULT RacingWheelRemoved([in] EventRegistrationToken token);
491 [propget] HRESULT RacingWheels([out, retval] Windows.Foundation.Collections.IVectorView<RacingWheel *> **value);
495 contract(Windows.Foundation.UniversalApiContract, 4.0),
496 exclusiveto(Windows.Gaming.Input.RacingWheel),
497 uuid(e666bcaa-edfd-4323-a9f6-3c384048d1ed)
499 interface IRacingWheelStatics2 : IInspectable
500 requires Windows.Gaming.Input.IRacingWheelStatics
502 HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *controller,
503 [out, retval] Windows.Gaming.Input.RacingWheel **value);
507 contract(Windows.Foundation.UniversalApiContract, 4.0),
508 exclusiveto(Windows.Gaming.Input.RawGameController),
509 uuid(7cad6d91-a7e1-4f71-9a78-33e9c5dfea62)
511 interface IRawGameController : IInspectable
512 requires Windows.Gaming.Input.IGameController
514 [propget] HRESULT AxisCount([out, retval] INT32 *value);
515 [propget] HRESULT ButtonCount([out, retval] INT32 *value);
516 [propget] HRESULT ForceFeedbackMotors([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor *> **value);
517 [propget] HRESULT HardwareProductId([out, retval] UINT16 *value);
518 [propget] HRESULT HardwareVendorId([out, retval] UINT16 *value);
519 [propget] HRESULT SwitchCount([out, retval] INT32 *value);
520 HRESULT GetButtonLabel([in] INT32 index, [out, retval] Windows.Gaming.Input.GameControllerButtonLabel *value);
521 HRESULT GetCurrentReading([in] UINT32 buttons_size, [out, size_is(buttons_size)] boolean *buttons,
522 [in] UINT32 switches_size, [out, size_is(switches_size)] Windows.Gaming.Input.GameControllerSwitchPosition *switches,
523 [in] UINT32 axes_size, [out, size_is(axes_size)] DOUBLE *axes,
524 [out, retval] UINT64 *timestamp);
525 HRESULT GetSwitchKind([in] INT32 index, [out, retval] Windows.Gaming.Input.GameControllerSwitchKind *value);
529 contract(Windows.Foundation.UniversalApiContract, 5.0),
530 exclusiveto(Windows.Gaming.Input.RawGameController),
531 uuid(43c0c035-bb73-4756-a787-3ed6bea617bd)
533 interface IRawGameController2 : IInspectable
534 requires Windows.Gaming.Input.IRawGameController,
535 Windows.Gaming.Input.IGameController
537 [propget] HRESULT SimpleHapticsControllers([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Haptics.SimpleHapticsController *> **value);
538 [propget] HRESULT NonRoamableId([out, retval] HSTRING *value);
539 [propget] HRESULT DisplayName([out, retval] HSTRING *value);
543 object,
544 uuid(8bbce529-d49c-39e9-9560-e47dde96b7c8)
546 interface IGamepadStatics : IInspectable
548 [eventadd] HRESULT GamepadAdded([in] Windows.Foundation.EventHandler<Gamepad *> *value, [out, retval] EventRegistrationToken *token);
549 [eventremove] HRESULT GamepadAdded([in] EventRegistrationToken token);
550 [eventadd] HRESULT GamepadRemoved([in] Windows.Foundation.EventHandler<Gamepad *> *value, [out, retval] EventRegistrationToken *token);
551 [eventremove] HRESULT GamepadRemoved([in] EventRegistrationToken token);
552 [propget] HRESULT Gamepads([out, retval] Windows.Foundation.Collections.IVectorView<Gamepad *> **value);
556 contract(Windows.Foundation.UniversalApiContract, 4.0),
557 exclusiveto(Windows.Gaming.Input.Gamepad),
558 uuid(42676dc5-0856-47c4-9213-b395504c3a3c)
560 interface IGamepadStatics2 : IInspectable
561 requires Windows.Gaming.Input.IGamepadStatics
563 HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *controller,
564 [out, retval] Windows.Gaming.Input.Gamepad **value);
568 contract(Windows.Foundation.UniversalApiContract, 1.0),
569 exclusiveto(Windows.Gaming.Input.Headset),
570 uuid(3fd156ef-6925-3fa8-9181-029c5223ae3b)
572 interface IHeadset : IInspectable
574 [propget] HRESULT CaptureDeviceId([out, retval] HSTRING *value);
575 [propget] HRESULT RenderDeviceId([out, retval] HSTRING *value);
579 object,
580 uuid(eb8d0792-e95a-4b19-afc7-0a59f8bf759e)
582 interface IRawGameControllerStatics : IInspectable
584 [eventadd] HRESULT RawGameControllerAdded([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.RawGameController *> *handler,
585 [out, retval] EventRegistrationToken *token);
586 [eventremove] HRESULT RawGameControllerAdded([in] EventRegistrationToken token);
587 [eventadd] HRESULT RawGameControllerRemoved([in] Windows.Foundation.EventHandler<Windows.Gaming.Input.RawGameController *> *handler,
588 [out, retval] EventRegistrationToken *token);
589 [eventremove] HRESULT RawGameControllerRemoved([in] EventRegistrationToken token);
590 [propget] HRESULT RawGameControllers([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Gaming.Input.RawGameController *> **value);
591 HRESULT FromGameController([in] Windows.Gaming.Input.IGameController *game_controller, [out, retval] Windows.Gaming.Input.RawGameController **value);
595 contract(Windows.Foundation.UniversalApiContract, 4.0),
596 uuid(dcecc681-3963-4da6-955d-553f3b6f6161)
598 interface IGameControllerBatteryInfo : IInspectable
600 HRESULT TryGetBatteryReport([out, retval] Windows.Devices.Power.BatteryReport **value);
604 contract(Windows.Foundation.UniversalApiContract, 3.0),
605 marshaling_behavior(agile),
606 static(Windows.Gaming.Input.IArcadeStickStatics, Windows.Foundation.UniversalApiContract, 3.0),
607 static(Windows.Gaming.Input.IArcadeStickStatics2, Windows.Foundation.UniversalApiContract, 4.0),
608 threading(both)
610 runtimeclass ArcadeStick
612 [default] interface Windows.Gaming.Input.IArcadeStick;
613 interface Windows.Gaming.Input.IGameController;
614 [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo;
618 contract(Windows.Foundation.UniversalApiContract, 4.0),
619 marshaling_behavior(agile),
620 static(Windows.Gaming.Input.IFlightStickStatics, Windows.Foundation.UniversalApiContract, 4.0),
621 threading(both)
623 runtimeclass FlightStick
625 [default] interface Windows.Gaming.Input.IFlightStick;
626 interface Windows.Gaming.Input.IGameController;
627 interface Windows.Gaming.Input.IGameControllerBatteryInfo;
631 contract(Windows.Foundation.UniversalApiContract, 1.0),
632 marshaling_behavior(agile),
633 static(Windows.Gaming.Input.IGamepadStatics, Windows.Foundation.UniversalApiContract, 1.0),
634 static(Windows.Gaming.Input.IGamepadStatics2, Windows.Foundation.UniversalApiContract, 4.0),
635 threading(both)
637 runtimeclass Gamepad
639 [default] interface Windows.Gaming.Input.IGamepad;
640 interface Windows.Gaming.Input.IGameController;
641 [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Gaming.Input.IGamepad2;
642 [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo;
646 contract(Windows.Foundation.UniversalApiContract, 1.0),
647 marshaling_behavior(agile),
648 threading(both)
650 runtimeclass Headset
652 [default] interface Windows.Gaming.Input.IHeadset;
653 [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo;
657 contract(Windows.Foundation.UniversalApiContract, 3.0),
658 marshaling_behavior(agile),
659 static(Windows.Gaming.Input.IRacingWheelStatics, Windows.Foundation.UniversalApiContract, 3.0),
660 static(Windows.Gaming.Input.IRacingWheelStatics2, Windows.Foundation.UniversalApiContract, 4.0),
661 threading(both)
663 runtimeclass RacingWheel
665 [default] interface Windows.Gaming.Input.IRacingWheel;
666 interface Windows.Gaming.Input.IGameController;
667 [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo;
671 contract(Windows.Foundation.UniversalApiContract, 4.0),
672 marshaling_behavior(agile),
673 static(Windows.Gaming.Input.IRawGameControllerStatics, Windows.Foundation.UniversalApiContract, 4.0),
674 threading(both)
676 runtimeclass RawGameController
678 [default] interface Windows.Gaming.Input.IRawGameController;
679 interface Windows.Gaming.Input.IGameController;
680 interface Windows.Gaming.Input.IGameControllerBatteryInfo;
681 [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Gaming.Input.IRawGameController2;