CommonLibVR
Loading...
Searching...
No Matches
DINPUT.h
Go to the documentation of this file.
1#pragma once
2
3#include "REX/W32/COM.h"
4#include "REX/W32/D3D.h"
5
6namespace REX::W32
7{
8 struct IDirectInput8A;
9 struct IDirectInputDevice8A;
10 struct IDirectInputEffect;
11}
12
13namespace REX::W32
14{
15 enum DIK : std::uint32_t
16 {
18 DIK_1 = 0x2,
19 DIK_2 = 0x3,
20 DIK_3 = 0x4,
21 DIK_4 = 0x5,
22 DIK_5 = 0x6,
23 DIK_6 = 0x7,
24 DIK_7 = 0x8,
25 DIK_8 = 0x9,
26 DIK_9 = 0xA,
27 DIK_0 = 0xB,
28 DIK_MINUS = 0xC,
30 DIK_BACK = 0xE,
31 DIK_TAB = 0xF,
32 DIK_Q = 0x10,
33 DIK_W = 0x11,
34 DIK_E = 0x12,
35 DIK_R = 0x13,
36 DIK_T = 0x14,
37 DIK_Y = 0x15,
38 DIK_U = 0x16,
39 DIK_I = 0x17,
40 DIK_O = 0x18,
41 DIK_P = 0x19,
44 DIK_RETURN = 0x1C,
46 DIK_A = 0x1E,
47 DIK_S = 0x1F,
48 DIK_D = 0x20,
49 DIK_F = 0x21,
50 DIK_G = 0x22,
51 DIK_H = 0x23,
52 DIK_J = 0x24,
53 DIK_K = 0x25,
54 DIK_L = 0x26,
57 DIK_GRAVE = 0x29,
58 DIK_LSHIFT = 0x2A,
60 DIK_Z = 0x2C,
61 DIK_X = 0x2D,
62 DIK_C = 0x2E,
63 DIK_V = 0x2F,
64 DIK_B = 0x30,
65 DIK_N = 0x31,
66 DIK_M = 0x32,
67 DIK_COMMA = 0x33,
68 DIK_PERIOD = 0x34,
69 DIK_SLASH = 0x35,
70 DIK_RSHIFT = 0x36,
72 DIK_LMENU = 0x38,
73 DIK_SPACE = 0x39,
75 DIK_F1 = 0x3B,
76 DIK_F2 = 0x3C,
77 DIK_F3 = 0x3D,
78 DIK_F4 = 0x3E,
79 DIK_F5 = 0x3F,
80 DIK_F6 = 0x40,
81 DIK_F7 = 0x41,
82 DIK_F8 = 0x42,
83 DIK_F9 = 0x43,
84 DIK_F10 = 0x44,
86 DIK_SCROLL = 0x46,
94 DIK_ADD = 0x4E,
101 DIK_F11 = 0x57,
102 DIK_F12 = 0x58,
103 DIK_F13 = 0x64,
104 DIK_F14 = 0x65,
105 DIK_F15 = 0x66,
106 DIK_KANA = 0x70,
110 DIK_YEN = 0x7D,
114 DIK_AT = 0x91,
115 DIK_COLON = 0x92,
117 DIK_KANJI = 0x94,
118 DIK_STOP = 0x95,
119 DIK_AX = 0x96,
124 DIK_MUTE = 0xA0,
133 DIK_SYSRQ = 0xB7,
134 DIK_RMENU = 0xB8,
135 DIK_PAUSE = 0xC5,
136 DIK_HOME = 0xC7,
137 DIK_UP = 0xC8,
138 DIK_PRIOR = 0xC9,
139 DIK_LEFT = 0xCB,
140 DIK_RIGHT = 0xCD,
141 DIK_END = 0xCF,
142 DIK_DOWN = 0xD0,
143 DIK_NEXT = 0xD1,
146 DIK_LWIN = 0xDB,
147 DIK_RWIN = 0xDC,
148 DIK_APPS = 0xDD,
149 DIK_POWER = 0xDE,
150 DIK_SLEEP = 0xDF,
151 DIK_WAKE = 0xE3,
159 DIK_MAIL = 0xEC,
176 };
177}
178
179namespace REX::W32
180{
181 struct DIENVELOPE;
182 struct DIOBJECTDATAFORMAT;
183
185 {
186 std::uintptr_t appData;
187 std::uint32_t semantic;
188 std::uint32_t flags;
189 union
190 {
191 const char* actionName;
192 std::uint32_t resIdString;
193 };
195 std::uint32_t objID;
196 std::uint32_t how;
197 };
198
200 {
201 std::uint32_t size;
202 std::uint32_t actionSize;
203 std::uint32_t dataSize;
204 std::uint32_t numActions;
207 std::uint32_t genre;
208 std::uint32_t bufferSize;
209 std::int32_t axisMin;
210 std::int32_t axisMax;
213 std::uint32_t crc;
215 };
216
229
231 {
232 std::uint32_t size;
233 std::uint32_t users;
235 std::uint32_t formatsSize;
239 IUnknown* unkDDSTarget;
240 };
241
243 {
244 std::uint32_t size;
245 std::uint32_t objSize;
246 std::uint32_t flags;
247 std::uint32_t dataSize;
248 std::uint32_t numObjs;
250 };
251
253 {
254 std::uint32_t size;
255 std::uint32_t flags;
256 std::uint32_t devType;
257 std::uint32_t axes;
258 std::uint32_t buttons;
259 std::uint32_t povs;
260 std::uint32_t ffSamplePeriod;
261 std::uint32_t ffMinTimeResolution;
262 std::uint32_t firmwareRevision;
263 std::uint32_t hardwareRevision;
264 std::uint32_t ffDriverVersion;
265 };
266
268 {
270 std::uint32_t flags;
271 std::uint32_t viewID;
273 std::uint32_t objID;
274 std::uint32_t validPts;
277 std::uint32_t textAlign;
278 };
279
281 {
282 std::uint32_t size;
283 std::uint32_t sizeImageInfo;
284 std::uint32_t views;
285 std::uint32_t buttons;
286 std::uint32_t axes;
287 std::uint32_t povs;
288 std::uint32_t bufferSize;
289 std::uint32_t bufferUsed;
291 };
292
294 {
295 std::uint32_t size;
298 std::uint32_t devType;
302
303 // DIRECTINPUT_VERSION >= 0x0500
304 std::uint16_t usagePage;
305 std::uint16_t usage;
306 };
307
309 {
310 std::uint32_t ofs;
311 std::uint32_t data;
312 std::uint32_t timeStamp;
313 std::uint32_t sequence;
314 std::uintptr_t appData;
315 };
316
318 {
319 std::uint32_t size;
321 std::uint32_t ofs;
322 std::uint32_t type;
323 std::uint32_t flags;
325
326 // DIRECTINPUT_VERSION >= 0x0500
327 std::uint32_t ffMaxForce;
328 std::uint32_t ffForceResolution;
329 std::uint16_t collectionNumber;
330 std::uint16_t designatorIndex;
331 std::uint16_t usagePage;
332 std::uint16_t usage;
333 std::uint32_t dimension;
334 std::uint16_t exponent;
335 std::uint16_t reportId;
336 };
337
338 struct DIEFFECT
339 {
340 std::uint32_t size;
341 std::uint32_t flags;
342 std::uint32_t duration;
343 std::uint32_t samplePeriod;
344 std::uint32_t gain;
345 std::uint32_t triggerButton;
347 std::uint32_t axesSize;
348 std::uint32_t* axes;
349 std::int32_t* direction;
353 std::uint32_t startDelay;
354 };
355
357 {
358 std::uint32_t size;
359 std::uint32_t attackLevel;
360 std::uint32_t attackTime;
361 std::uint32_t fadeLevel;
362 std::uint32_t fadeTime;
363 };
364
366 {
367 std::uint32_t size;
369 std::uint32_t effectType;
370 std::uint32_t staticParams;
371 std::uint32_t dynamicParams;
373 };
374
376 {
377 std::uint32_t size;
378 std::uint32_t command;
379 void* inBuffer;
380 std::uint32_t inBufferSize;
382 std::uint32_t outBufferSize;
383 };
384
386 {
387 std::uint32_t size;
391 };
392
394 {
395 std::int32_t x;
396 std::int32_t y;
397 std::int32_t z;
398 std::uint8_t rgbButtons[8];
399 };
400
402 {
403 const GUID* guid;
404 std::uint32_t ofs;
405 std::uint32_t type;
406 std::uint32_t flags;
407 };
408
410 {
411 std::uint32_t size;
412 std::uint32_t headerSize;
413 std::uint32_t obj;
414 std::uint32_t how;
415 };
416}
417
418namespace REX::W32
419{
420 using LPDICONFIGUREDEVICESCALLBACK = BOOL(__stdcall*)(IUnknown*, void*);
421 using LPDIENUMCREATEDEFFECTOBJECTSCALLBACK = BOOL(__stdcall*)(IDirectInputEffect*, void*);
422 using LPDIENUMDEVICESBYSEMANTICSCBA = BOOL(__stdcall*)(const DIDEVICEINSTANCEA*, IDirectInputDevice8A*, std::uint32_t, std::uint32_t, void*);
423 using LPDIENUMDEVICESCALLBACKA = BOOL(__stdcall*)(const DIDEVICEINSTANCEA*, void*);
425 using LPDIENUMEFFECTSCALLBACKA = BOOL(__stdcall*)(const DIEFFECTINFOA*, void*);
426 using LPDIENUMEFFECTSINFILECALLBACK = BOOL(__stdcall*)(const DIFILEEFFECT*, void*);
427}
428
429namespace REX::W32
430{
431 struct __declspec(novtable, uuid("BF798030-483A-4DA2-AA99-5D64ED369700"))
432 IDirectInput8A : public IUnknown
433 {
434 virtual HRESULT CreateDevice(const GUID&, IDirectInputDevice8A**, IUnknown*) noexcept = 0;
435 virtual HRESULT EnumDevices(std::uint32_t, LPDIENUMDEVICESCALLBACKA, void*, std::uint32_t) noexcept = 0;
436 virtual HRESULT GetDeviceStatus(const GUID&) noexcept = 0;
437 virtual HRESULT RunControlPanel(HWND, std::uint32_t) noexcept = 0;
438 virtual HRESULT Initialize(HINSTANCE, std::uint32_t) noexcept = 0;
439 virtual HRESULT FindDevice(const GUID&, const char*, GUID*) noexcept = 0;
440 virtual HRESULT EnumDevicesBySemantics(const char*, DIACTIONFORMATA*, LPDIENUMDEVICESBYSEMANTICSCBA, void*, std::uint32_t) noexcept = 0;
441 virtual HRESULT ConfigureDevices(LPDICONFIGUREDEVICESCALLBACK, DICONFIGUREDEVICESPARAMSA*, std::uint32_t, void*) noexcept = 0;
442 };
443
444 struct __declspec(novtable, uuid("54D41080-DC15-4833-A41B-748F73A38179"))
445 IDirectInputDevice8A : public IUnknown
446 {
447 virtual HRESULT GetCapabilities(DIDEVCAPS*) noexcept = 0;
448 virtual HRESULT EnumObjects(LPDIENUMDEVICEOBJECTSCALLBACKA, void*, std::uint32_t) noexcept = 0;
449 virtual HRESULT GetProperty(const GUID&, DIPROPHEADER*) noexcept = 0;
450 virtual HRESULT SetProperty(const GUID&, const DIPROPHEADER*) noexcept = 0;
451 virtual HRESULT Acquire() noexcept = 0;
452 virtual HRESULT Unacquire() noexcept = 0;
453 virtual HRESULT GetDeviceState(std::uint32_t, void*) noexcept = 0;
454 virtual HRESULT GetDeviceData(std::uint32_t, DIDEVICEOBJECTDATA*, std::uint32_t*, std::uint32_t) noexcept = 0;
455 virtual HRESULT SetDataFormat(const DIDATAFORMAT*) noexcept = 0;
456 virtual HRESULT SetEventNotification(HANDLE) noexcept = 0;
457 virtual HRESULT SetCooperativeLevel(HWND, std::uint32_t) noexcept = 0;
458 virtual HRESULT GetObjectInfo(DIDEVICEOBJECTINSTANCEA*, std::uint32_t, std::uint32_t) noexcept = 0;
459 virtual HRESULT GetDeviceInfo(DIDEVICEINSTANCEA*) noexcept = 0;
460 virtual HRESULT RunControlPanel(HWND, std::uint32_t) noexcept = 0;
461 virtual HRESULT Initialize(HINSTANCE, std::uint32_t, const GUID&) noexcept = 0;
462 virtual HRESULT CreateEffect(const GUID&, const DIEFFECT*, IDirectInputEffect*, IUnknown*) noexcept = 0;
463 virtual HRESULT EnumEffects(LPDIENUMEFFECTSCALLBACKA, void*, std::uint32_t) noexcept = 0;
464 virtual HRESULT GetEffectInfo(DIEFFECTINFOA*, const GUID&) noexcept = 0;
465 virtual HRESULT GetForceFeedbackState(std::uint32_t*) noexcept = 0;
466 virtual HRESULT SendForceFeedbackCommand(std::uint32_t) noexcept = 0;
467 virtual HRESULT EnumCreatedEffectObjects(LPDIENUMCREATEDEFFECTOBJECTSCALLBACK, void*, std::uint32_t) noexcept = 0;
468 virtual HRESULT Escape(DIEFFESCAPE*) noexcept = 0;
469 virtual HRESULT Poll() noexcept = 0;
470 virtual HRESULT SendDeviceData(std::uint32_t, const DIDEVICEOBJECTDATA*, std::uint32_t*, std::uint32_t) noexcept = 0;
471 virtual HRESULT EnumEffectsInFile(const char*, LPDIENUMEFFECTSINFILECALLBACK, void*, std::uint32_t) noexcept = 0;
472 virtual HRESULT WriteEffectToFile(const char*, std::uint32_t, DIFILEEFFECT*, std::uint32_t) noexcept = 0;
473 virtual HRESULT BuildActionMap(DIACTIONFORMATA*, const char*, std::uint32_t) noexcept = 0;
474 virtual HRESULT SetActionMap(DIACTIONFORMATA*, const char*, std::uint32_t) noexcept = 0;
475 virtual HRESULT GetImageInfo(DIDEVICEIMAGEINFOHEADERA*) noexcept = 0;
476 };
477
478 struct __declspec(novtable, uuid("E7E1F7C0-88D2-11D0-9AD0-00A0C9A06E35"))
479 IDirectInputEffect : public IUnknown
480 {
481 virtual HRESULT Initialize(HINSTANCE, std::uint32_t, const GUID&) noexcept = 0;
482 virtual HRESULT GetEffectGuid(GUID*) noexcept = 0;
483 virtual HRESULT GetParameters(DIEFFECT*, std::uint32_t) noexcept = 0;
484 virtual HRESULT SetParameters(const DIEFFECT*, std::uint32_t) noexcept = 0;
485 virtual HRESULT Start(std::uint32_t, std::uint32_t) noexcept = 0;
486 virtual HRESULT Stop() noexcept = 0;
487 virtual HRESULT GetEffectStatus(std::uint32_t*) noexcept = 0;
488 virtual HRESULT Download() noexcept = 0;
489 virtual HRESULT Unload() noexcept = 0;
490 virtual HRESULT Escape(DIEFFESCAPE*) noexcept = 0;
491 };
492}
493
494namespace REX::W32
495{
496 inline constexpr IID IID_IDirectInput8A{ 0xBF798030, 0x483A, 0x4DA2, { 0xAA, 0x99, 0x5D, 0x64, 0xED, 0x36, 0x97, 0x00 } };
497 inline constexpr IID IID_IDirectInputDevice8A{ 0x54D41080, 0xDC15, 0x4833, { 0xA4, 0x1B, 0x74, 0x8F, 0x73, 0xA3, 0x81, 0x79 } };
498 inline constexpr IID IID_IDirectInputEffect{ 0xE7E1F7C0, 0x88D2, 0x11D0, { 0x9A, 0xD0, 0x00, 0xA0, 0xC9, 0xA0, 0x6E, 0x35 } };
499}
Definition BSDirectInputManager.h:8
std::uint32_t D3DCOLOR
Definition D3D.h:673
BOOL(__stdcall *)(const DIDEVICEINSTANCEA *, IDirectInputDevice8A *, std::uint32_t, std::uint32_t, void *) LPDIENUMDEVICESBYSEMANTICSCBA
Definition DINPUT.h:422
BOOL(__stdcall *)(const DIDEVICEOBJECTINSTANCEA *, void *) LPDIENUMDEVICEOBJECTSCALLBACKA
Definition DINPUT.h:424
BOOL(__stdcall *)(const DIEFFECTINFOA *, void *) LPDIENUMEFFECTSCALLBACKA
Definition DINPUT.h:425
void * HANDLE
Definition BASE.h:14
constexpr IID IID_IDirectInputDevice8A
Definition DINPUT.h:497
struct __declspec(novtable, uuid("00000000-0000-0000-c000-000000000046")) IUnknown
Definition COM.h:7
std::int32_t BOOL
Definition BASE.h:13
HINSTANCE__ * HINSTANCE
Definition BASE.h:21
constexpr IID IID_IDirectInput8A
Definition DINPUT.h:496
constexpr auto MAX_PATH
Definition BASE.h:35
BOOL(__stdcall *)(IDirectInputEffect *, void *) LPDIENUMCREATEDEFFECTOBJECTSCALLBACK
Definition DINPUT.h:421
constexpr IID IID_IDirectInputEffect
Definition DINPUT.h:498
BOOL(__stdcall *)(const DIFILEEFFECT *, void *) LPDIENUMEFFECTSINFILECALLBACK
Definition DINPUT.h:426
BOOL(__stdcall *)(IUnknown *, void *) LPDICONFIGUREDEVICESCALLBACK
Definition DINPUT.h:420
DIK
Definition DINPUT.h:16
@ DIK_NUMPAD0
Definition DINPUT.h:98
@ DIK_LBRACKET
Definition DINPUT.h:42
@ DIK_B
Definition DINPUT.h:64
@ DIK_ABNT_C1
Definition DINPUT.h:107
@ DIK_POWER
Definition DINPUT.h:149
@ DIK_PRIOR
Definition DINPUT.h:138
@ DIK_RBRACKET
Definition DINPUT.h:43
@ DIK_WEBHOME
Definition DINPUT.h:130
@ DIK_AX
Definition DINPUT.h:119
@ DIK_HOME
Definition DINPUT.h:136
@ DIK_NUMPAD6
Definition DINPUT.h:93
@ DIK_J
Definition DINPUT.h:52
@ DIK_F
Definition DINPUT.h:49
@ DIK_NUMPADSTAR
Definition DINPUT.h:162
@ DIK_RCONTROL
Definition DINPUT.h:123
@ DIK_WEBBACK
Definition DINPUT.h:157
@ DIK_GRAVE
Definition DINPUT.h:57
@ DIK_PERIOD
Definition DINPUT.h:68
@ DIK_A
Definition DINPUT.h:46
@ DIK_NUMPAD2
Definition DINPUT.h:96
@ DIK_DECIMAL
Definition DINPUT.h:99
@ DIK_RIGHT
Definition DINPUT.h:140
@ DIK_8
Definition DINPUT.h:25
@ DIK_F5
Definition DINPUT.h:79
@ DIK_SUBTRACT
Definition DINPUT.h:90
@ DIK_VOLUMEUP
Definition DINPUT.h:129
@ DIK_WAKE
Definition DINPUT.h:151
@ DIK_F7
Definition DINPUT.h:81
@ DIK_END
Definition DINPUT.h:141
@ DIK_SLEEP
Definition DINPUT.h:150
@ DIK_COMMA
Definition DINPUT.h:67
@ DIK_RETURN
Definition DINPUT.h:44
@ DIK_UP
Definition DINPUT.h:137
@ DIK_DIVIDE
Definition DINPUT.h:132
@ DIK_CAPITAL
Definition DINPUT.h:74
@ DIK_SYSRQ
Definition DINPUT.h:133
@ DIK_W
Definition DINPUT.h:33
@ DIK_SLASH
Definition DINPUT.h:69
@ DIK_NUMPADEQUALS
Definition DINPUT.h:112
@ DIK_F11
Definition DINPUT.h:101
@ DIK_KANA
Definition DINPUT.h:106
@ DIK_ABNT_C2
Definition DINPUT.h:111
@ DIK_PAUSE
Definition DINPUT.h:135
@ DIK_5
Definition DINPUT.h:22
@ DIK_COLON
Definition DINPUT.h:115
@ DIK_NUMPADENTER
Definition DINPUT.h:122
@ DIK_NUMPADSLASH
Definition DINPUT.h:168
@ DIK_LMENU
Definition DINPUT.h:72
@ DIK_2
Definition DINPUT.h:19
@ DIK_ESCAPE
Definition DINPUT.h:17
@ DIK_EQUALS
Definition DINPUT.h:29
@ DIK_PREVTRACK
Definition DINPUT.h:113
@ DIK_LCONTROL
Definition DINPUT.h:45
@ DIK_BACKSLASH
Definition DINPUT.h:59
@ DIK_UNLABELED
Definition DINPUT.h:120
@ DIK_3
Definition DINPUT.h:20
@ DIK_NEXT
Definition DINPUT.h:143
@ DIK_LSHIFT
Definition DINPUT.h:58
@ DIK_LEFT
Definition DINPUT.h:139
@ DIK_NUMPADPERIOD
Definition DINPUT.h:167
@ DIK_MULTIPLY
Definition DINPUT.h:71
@ DIK_PLAYPAUSE
Definition DINPUT.h:126
@ DIK_V
Definition DINPUT.h:63
@ DIK_NUMLOCK
Definition DINPUT.h:85
@ DIK_RWIN
Definition DINPUT.h:147
@ DIK_LEFTARROW
Definition DINPUT.h:172
@ DIK_F6
Definition DINPUT.h:80
@ DIK_CALCULATOR
Definition DINPUT.h:125
@ DIK_NUMPAD8
Definition DINPUT.h:88
@ DIK_E
Definition DINPUT.h:34
@ DIK_YEN
Definition DINPUT.h:110
@ DIK_F4
Definition DINPUT.h:78
@ DIK_F8
Definition DINPUT.h:82
@ DIK_PGDN
Definition DINPUT.h:175
@ DIK_F15
Definition DINPUT.h:105
@ DIK_NUMPADMINUS
Definition DINPUT.h:165
@ DIK_X
Definition DINPUT.h:61
@ DIK_F12
Definition DINPUT.h:102
@ DIK_RIGHTARROW
Definition DINPUT.h:173
@ DIK_CONVERT
Definition DINPUT.h:108
@ DIK_R
Definition DINPUT.h:35
@ DIK_CAPSLOCK
Definition DINPUT.h:164
@ DIK_NUMPAD5
Definition DINPUT.h:92
@ DIK_F9
Definition DINPUT.h:83
@ DIK_Q
Definition DINPUT.h:32
@ DIK_MEDIASELECT
Definition DINPUT.h:160
@ DIK_MEDIASTOP
Definition DINPUT.h:127
@ DIK_MYCOMPUTER
Definition DINPUT.h:158
@ DIK_APPS
Definition DINPUT.h:148
@ DIK_NUMPAD9
Definition DINPUT.h:89
@ DIK_K
Definition DINPUT.h:53
@ DIK_N
Definition DINPUT.h:65
@ DIK_L
Definition DINPUT.h:54
@ DIK_RSHIFT
Definition DINPUT.h:70
@ DIK_MUTE
Definition DINPUT.h:124
@ DIK_DELETE
Definition DINPUT.h:145
@ DIK_INSERT
Definition DINPUT.h:144
@ DIK_F2
Definition DINPUT.h:76
@ DIK_WEBSTOP
Definition DINPUT.h:155
@ DIK_WEBFORWARD
Definition DINPUT.h:156
@ DIK_M
Definition DINPUT.h:66
@ DIK_KANJI
Definition DINPUT.h:117
@ DIK_LWIN
Definition DINPUT.h:146
@ DIK_F10
Definition DINPUT.h:84
@ DIK_DOWN
Definition DINPUT.h:142
@ DIK_BACKSPACE
Definition DINPUT.h:161
@ DIK_T
Definition DINPUT.h:36
@ DIK_F1
Definition DINPUT.h:75
@ DIK_STOP
Definition DINPUT.h:118
@ DIK_NUMPAD1
Definition DINPUT.h:95
@ DIK_O
Definition DINPUT.h:40
@ DIK_UPARROW
Definition DINPUT.h:170
@ DIK_SPACE
Definition DINPUT.h:73
@ DIK_G
Definition DINPUT.h:50
@ DIK_C
Definition DINPUT.h:62
@ DIK_MAIL
Definition DINPUT.h:159
@ DIK_F14
Definition DINPUT.h:104
@ DIK_NUMPADPLUS
Definition DINPUT.h:166
@ DIK_WEBFAVORITES
Definition DINPUT.h:153
@ DIK_RMENU
Definition DINPUT.h:134
@ DIK_AT
Definition DINPUT.h:114
@ DIK_0
Definition DINPUT.h:27
@ DIK_I
Definition DINPUT.h:39
@ DIK_NOCONVERT
Definition DINPUT.h:109
@ DIK_RALT
Definition DINPUT.h:169
@ DIK_NEXTTRACK
Definition DINPUT.h:121
@ DIK_F3
Definition DINPUT.h:77
@ DIK_4
Definition DINPUT.h:21
@ DIK_U
Definition DINPUT.h:38
@ DIK_ADD
Definition DINPUT.h:94
@ DIK_NUMPAD4
Definition DINPUT.h:91
@ DIK_S
Definition DINPUT.h:47
@ DIK_UNDERLINE
Definition DINPUT.h:116
@ DIK_6
Definition DINPUT.h:23
@ DIK_F13
Definition DINPUT.h:103
@ DIK_PGUP
Definition DINPUT.h:171
@ DIK_NUMPAD3
Definition DINPUT.h:97
@ DIK_H
Definition DINPUT.h:51
@ DIK_DOWNARROW
Definition DINPUT.h:174
@ DIK_Y
Definition DINPUT.h:37
@ DIK_LALT
Definition DINPUT.h:163
@ DIK_WEBSEARCH
Definition DINPUT.h:152
@ DIK_BACK
Definition DINPUT.h:30
@ DIK_NUMPAD7
Definition DINPUT.h:87
@ DIK_7
Definition DINPUT.h:24
@ DIK_TAB
Definition DINPUT.h:31
@ DIK_APOSTROPHE
Definition DINPUT.h:56
@ DIK_SEMICOLON
Definition DINPUT.h:55
@ DIK_9
Definition DINPUT.h:26
@ DIK_OEM_102
Definition DINPUT.h:100
@ DIK_D
Definition DINPUT.h:48
@ DIK_VOLUMEDOWN
Definition DINPUT.h:128
@ DIK_SCROLL
Definition DINPUT.h:86
@ DIK_NUMPADCOMMA
Definition DINPUT.h:131
@ DIK_P
Definition DINPUT.h:41
@ DIK_WEBREFRESH
Definition DINPUT.h:154
@ DIK_MINUS
Definition DINPUT.h:28
@ DIK_Z
Definition DINPUT.h:60
@ DIK_1
Definition DINPUT.h:18
std::int32_t HRESULT
Definition BASE.h:28
HWND__ * HWND
Definition BASE.h:30
BOOL(__stdcall *)(const DIDEVICEINSTANCEA *, void *) LPDIENUMDEVICESCALLBACKA
Definition DINPUT.h:423
Definition BSDirectInputManager.h:8
Definition EffectArchetypes.h:65
Definition DINPUT.h:185
std::uint32_t resIdString
Definition DINPUT.h:192
std::uint32_t objID
Definition DINPUT.h:195
const char * actionName
Definition DINPUT.h:191
std::uint32_t how
Definition DINPUT.h:196
std::uintptr_t appData
Definition DINPUT.h:186
std::uint32_t semantic
Definition DINPUT.h:187
GUID guidInstance
Definition DINPUT.h:194
std::uint32_t flags
Definition DINPUT.h:188
Definition DINPUT.h:200
HINSTANCE instString
Definition DINPUT.h:211
char actionMap[MAX_PATH]
Definition DINPUT.h:214
std::uint32_t bufferSize
Definition DINPUT.h:208
std::uint32_t crc
Definition DINPUT.h:213
std::uint32_t dataSize
Definition DINPUT.h:203
std::int32_t axisMax
Definition DINPUT.h:210
GUID guidActionMap
Definition DINPUT.h:206
std::int32_t axisMin
Definition DINPUT.h:209
std::uint32_t actionSize
Definition DINPUT.h:202
FILETIME timeStamp
Definition DINPUT.h:212
std::uint32_t numActions
Definition DINPUT.h:204
std::uint32_t size
Definition DINPUT.h:201
DIACTIONA * action
Definition DINPUT.h:205
std::uint32_t genre
Definition DINPUT.h:207
Definition DINPUT.h:218
D3DCOLOR calloutLine
Definition DINPUT.h:222
std::uint32_t size
Definition DINPUT.h:219
D3DCOLOR highlightFill
Definition DINPUT.h:226
D3DCOLOR areaFill
Definition DINPUT.h:227
D3DCOLOR textFore
Definition DINPUT.h:220
D3DCOLOR calloutHighlight
Definition DINPUT.h:223
D3DCOLOR textHighlight
Definition DINPUT.h:221
D3DCOLOR border
Definition DINPUT.h:224
D3DCOLOR controlFill
Definition DINPUT.h:225
IUnknown * unkDDSTarget
Definition DINPUT.h:239
std::uint32_t size
Definition DINPUT.h:232
char * userNames
Definition DINPUT.h:234
HWND hwnd
Definition DINPUT.h:237
std::uint32_t users
Definition DINPUT.h:233
DIACTIONFORMATA * formats
Definition DINPUT.h:236
std::uint32_t formatsSize
Definition DINPUT.h:235
DICOLORSET dics
Definition DINPUT.h:238
Definition DINPUT.h:243
std::uint32_t size
Definition DINPUT.h:244
std::uint32_t flags
Definition DINPUT.h:246
std::uint32_t objSize
Definition DINPUT.h:245
DIOBJECTDATAFORMAT * odf
Definition DINPUT.h:249
std::uint32_t numObjs
Definition DINPUT.h:248
std::uint32_t dataSize
Definition DINPUT.h:247
Definition DINPUT.h:253
std::uint32_t axes
Definition DINPUT.h:257
std::uint32_t hardwareRevision
Definition DINPUT.h:263
std::uint32_t buttons
Definition DINPUT.h:258
std::uint32_t firmwareRevision
Definition DINPUT.h:262
std::uint32_t ffMinTimeResolution
Definition DINPUT.h:261
std::uint32_t ffSamplePeriod
Definition DINPUT.h:260
std::uint32_t devType
Definition DINPUT.h:256
std::uint32_t flags
Definition DINPUT.h:255
std::uint32_t povs
Definition DINPUT.h:259
std::uint32_t ffDriverVersion
Definition DINPUT.h:264
std::uint32_t size
Definition DINPUT.h:254
Definition DINPUT.h:268
POINT calloutLine[5]
Definition DINPUT.h:275
std::uint32_t textAlign
Definition DINPUT.h:277
std::uint32_t flags
Definition DINPUT.h:270
std::uint32_t validPts
Definition DINPUT.h:274
char imagePath[MAX_PATH]
Definition DINPUT.h:269
RECT calloutRect
Definition DINPUT.h:276
RECT overlay
Definition DINPUT.h:272
std::uint32_t objID
Definition DINPUT.h:273
std::uint32_t viewID
Definition DINPUT.h:271
Definition DINPUT.h:281
std::uint32_t buttons
Definition DINPUT.h:285
std::uint32_t sizeImageInfo
Definition DINPUT.h:283
std::uint32_t views
Definition DINPUT.h:284
std::uint32_t size
Definition DINPUT.h:282
std::uint32_t bufferUsed
Definition DINPUT.h:289
std::uint32_t axes
Definition DINPUT.h:286
DIDEVICEIMAGEINFOA * imageInfoArray
Definition DINPUT.h:290
std::uint32_t povs
Definition DINPUT.h:287
std::uint32_t bufferSize
Definition DINPUT.h:288
Definition DINPUT.h:294
std::uint16_t usage
Definition DINPUT.h:305
std::uint32_t size
Definition DINPUT.h:295
GUID guidFFDriver
Definition DINPUT.h:301
char instanceName[MAX_PATH]
Definition DINPUT.h:299
std::uint32_t devType
Definition DINPUT.h:298
std::uint16_t usagePage
Definition DINPUT.h:304
GUID guidProduct
Definition DINPUT.h:297
char productName[MAX_PATH]
Definition DINPUT.h:300
GUID guidInstance
Definition DINPUT.h:296
Definition DINPUT.h:309
std::uint32_t sequence
Definition DINPUT.h:313
std::uint32_t data
Definition DINPUT.h:311
std::uint32_t ofs
Definition DINPUT.h:310
std::uintptr_t appData
Definition DINPUT.h:314
std::uint32_t timeStamp
Definition DINPUT.h:312
Definition DINPUT.h:318
std::uint32_t flags
Definition DINPUT.h:323
GUID guidType
Definition DINPUT.h:320
std::uint16_t usage
Definition DINPUT.h:332
std::uint16_t designatorIndex
Definition DINPUT.h:330
std::uint16_t exponent
Definition DINPUT.h:334
std::uint32_t ffMaxForce
Definition DINPUT.h:327
std::uint16_t usagePage
Definition DINPUT.h:331
std::uint32_t type
Definition DINPUT.h:322
std::uint32_t ffForceResolution
Definition DINPUT.h:328
std::uint16_t collectionNumber
Definition DINPUT.h:329
std::uint16_t reportId
Definition DINPUT.h:335
std::uint32_t dimension
Definition DINPUT.h:333
std::uint32_t size
Definition DINPUT.h:319
std::uint32_t ofs
Definition DINPUT.h:321
char name[MAX_PATH]
Definition DINPUT.h:324
Definition DINPUT.h:366
std::uint32_t effectType
Definition DINPUT.h:369
std::uint32_t staticParams
Definition DINPUT.h:370
char name[MAX_PATH]
Definition DINPUT.h:372
GUID guid
Definition DINPUT.h:368
std::uint32_t dynamicParams
Definition DINPUT.h:371
std::uint32_t size
Definition DINPUT.h:367
Definition DINPUT.h:339
DIENVELOPE * envelope
Definition DINPUT.h:350
std::uint32_t size
Definition DINPUT.h:340
std::int32_t * direction
Definition DINPUT.h:349
std::uint32_t gain
Definition DINPUT.h:344
std::uint32_t axesSize
Definition DINPUT.h:347
std::uint32_t duration
Definition DINPUT.h:342
void * typeSpecificParams
Definition DINPUT.h:352
std::uint32_t samplePeriod
Definition DINPUT.h:343
std::uint32_t triggerRepeatInterval
Definition DINPUT.h:346
std::uint32_t * axes
Definition DINPUT.h:348
std::uint32_t typeSpecificParamsSize
Definition DINPUT.h:351
std::uint32_t triggerButton
Definition DINPUT.h:345
std::uint32_t flags
Definition DINPUT.h:341
std::uint32_t startDelay
Definition DINPUT.h:353
Definition DINPUT.h:376
std::uint32_t inBufferSize
Definition DINPUT.h:380
void * inBuffer
Definition DINPUT.h:379
std::uint32_t outBufferSize
Definition DINPUT.h:382
std::uint32_t command
Definition DINPUT.h:378
std::uint32_t size
Definition DINPUT.h:377
void * outBuffer
Definition DINPUT.h:381
Definition DINPUT.h:357
std::uint32_t fadeTime
Definition DINPUT.h:362
std::uint32_t fadeLevel
Definition DINPUT.h:361
std::uint32_t size
Definition DINPUT.h:358
std::uint32_t attackLevel
Definition DINPUT.h:359
std::uint32_t attackTime
Definition DINPUT.h:360
Definition DINPUT.h:386
GUID guidEffect
Definition DINPUT.h:388
std::uint32_t size
Definition DINPUT.h:387
char friendlyName[MAX_PATH]
Definition DINPUT.h:390
const DIEFFECT * effect
Definition DINPUT.h:389
Definition DINPUT.h:394
std::int32_t z
Definition DINPUT.h:397
std::uint8_t rgbButtons[8]
Definition DINPUT.h:398
std::int32_t x
Definition DINPUT.h:395
std::int32_t y
Definition DINPUT.h:396
Definition DINPUT.h:402
const GUID * guid
Definition DINPUT.h:403
std::uint32_t type
Definition DINPUT.h:405
std::uint32_t ofs
Definition DINPUT.h:404
std::uint32_t flags
Definition DINPUT.h:406
Definition DINPUT.h:410
std::uint32_t how
Definition DINPUT.h:414
std::uint32_t headerSize
Definition DINPUT.h:412
std::uint32_t obj
Definition DINPUT.h:413
std::uint32_t size
Definition DINPUT.h:411
Definition BASE.h:41
Definition BASE.h:63
Definition BASE.h:94
Definition BASE.h:110