CommonLibSSE NG
Loading...
Searching...
No Matches
DInputAPI.h
Go to the documentation of this file.
1#pragma once
2
3#include "WinAPI.h"
4#include <cstdint>
5
6// TODO: This should probably be behind some sort of pragma that allows linking with dinput and dinput8
8{
9 using DWORD = std::uint32_t;
10 using LONG = std::int32_t;
11 using WORD = std::uint16_t;
12 using BYTE = std::uint8_t;
13 using UINT = std::uint32_t;
14 using CHAR = char;
15
16 using LPSTR = char*;
17 using LPCSTR = const char*;
18
19 using UINT_PTR = std::uintptr_t;
20 using HANDLE = void*;
21 using LPDWORD = DWORD*;
22 using LPVOID = void*;
23 using LPLONG = LONG*;
24 using LPWORD = WORD*;
25
27 using LPGUID = GUID*;
28 using REFGUID = const GUID&;
32
33 using IID = GUID;
34 using REFIID = const IID&;
35 using LPIID = IID*;
36 using D3DCOLOR = std::uint32_t;
37
41
42 enum DIKey : uint32_t
43 {
45 DIK_1 = 0x2,
46 DIK_2 = 0x3,
47 DIK_3 = 0x4,
48 DIK_4 = 0x5,
49 DIK_5 = 0x6,
50 DIK_6 = 0x7,
51 DIK_7 = 0x8,
52 DIK_8 = 0x9,
53 DIK_9 = 0xA,
54 DIK_0 = 0xB,
55 DIK_MINUS = 0xC,
57 DIK_BACK = 0xE,
58 DIK_TAB = 0xF,
59 DIK_Q = 0x10,
60 DIK_W = 0x11,
61 DIK_E = 0x12,
62 DIK_R = 0x13,
63 DIK_T = 0x14,
64 DIK_Y = 0x15,
65 DIK_U = 0x16,
66 DIK_I = 0x17,
67 DIK_O = 0x18,
68 DIK_P = 0x19,
71 DIK_RETURN = 0x1C,
73 DIK_A = 0x1E,
74 DIK_S = 0x1F,
75 DIK_D = 0x20,
76 DIK_F = 0x21,
77 DIK_G = 0x22,
78 DIK_H = 0x23,
79 DIK_J = 0x24,
80 DIK_K = 0x25,
81 DIK_L = 0x26,
84 DIK_GRAVE = 0x29,
85 DIK_LSHIFT = 0x2A,
87 DIK_Z = 0x2C,
88 DIK_X = 0x2D,
89 DIK_C = 0x2E,
90 DIK_V = 0x2F,
91 DIK_B = 0x30,
92 DIK_N = 0x31,
93 DIK_M = 0x32,
94 DIK_COMMA = 0x33,
95 DIK_PERIOD = 0x34,
96 DIK_SLASH = 0x35,
97 DIK_RSHIFT = 0x36,
99 DIK_LMENU = 0x38,
100 DIK_SPACE = 0x39,
102 DIK_F1 = 0x3B,
103 DIK_F2 = 0x3C,
104 DIK_F3 = 0x3D,
105 DIK_F4 = 0x3E,
106 DIK_F5 = 0x3F,
107 DIK_F6 = 0x40,
108 DIK_F7 = 0x41,
109 DIK_F8 = 0x42,
110 DIK_F9 = 0x43,
111 DIK_F10 = 0x44,
121 DIK_ADD = 0x4E,
128 DIK_F11 = 0x57,
129 DIK_F12 = 0x58,
130 DIK_F13 = 0x64,
131 DIK_F14 = 0x65,
132 DIK_F15 = 0x66,
133 DIK_KANA = 0x70,
137 DIK_YEN = 0x7D,
141 DIK_AT = 0x91,
142 DIK_COLON = 0x92,
144 DIK_KANJI = 0x94,
145 DIK_STOP = 0x95,
146 DIK_AX = 0x96,
151 DIK_MUTE = 0xA0,
160 DIK_SYSRQ = 0xB7,
161 DIK_RMENU = 0xB8,
162 DIK_PAUSE = 0xC5,
163 DIK_HOME = 0xC7,
164 DIK_UP = 0xC8,
165 DIK_PRIOR = 0xC9,
166 DIK_LEFT = 0xCB,
167 DIK_RIGHT = 0xCD,
168 DIK_END = 0xCF,
169 DIK_DOWN = 0xD0,
170 DIK_NEXT = 0xD1,
173 DIK_LWIN = 0xDB,
174 DIK_RWIN = 0xDC,
175 DIK_APPS = 0xDD,
176 DIK_POWER = 0xDE,
177 DIK_SLEEP = 0xDF,
178 DIK_WAKE = 0xE3,
186 DIK_MAIL = 0xEC,
203 };
204
206 {
211 };
212 static_assert(sizeof(DIMOUSESTATE2__) == 0x14);
215
217 {
223 };
224 static_assert(sizeof(DIDEVICEOBJECTDATA__) == 0x18);
228
230 {
237 GUID guidFFDriver; // DIRECTINPUT_VERSION >= 0x0500
240 };
244
246 {
253 //#if(DIRECTINPUT_VERSION >= 0x0500)
263 //#endif /* DIRECTINPUT_VERSION >= 0x0500 */
264 };
268
270
272 {
277 };
278
282
284 {
291 DWORD dwFFSamplePeriod; // -- fields here are Dinput >= 0x0500
296 };
297 static_assert(sizeof(DIDEVCAPS__) == 0x2C);
300 using LPCDIDEVCAPS = const DIDEVCAPS*;
302 {
312 };
316
318 {
319 const GUID* pguid;
323 };
327
329 {
336 };
340
342 {
343 DWORD dwSize; /* sizeof(DIENVELOPE) */
345 DWORD dwAttackTime; /* Microseconds */
347 DWORD dwFadeTime; /* Microseconds */
348 };
351 using LPCDIENVELOPE = const DIENVELOPE*;
352
354 {
361 };
365
367
369 {
370 DWORD dwSize; /* sizeof(DIEFFECT) */
371 DWORD dwFlags; /* DIEFF_* */
372 DWORD dwDuration; /* Microseconds */
373 DWORD dwSamplePeriod; /* Microseconds */
375 DWORD dwTriggerButton; /* or DIEB_NOTRIGGER */
376 DWORD dwTriggerRepeatInterval; /* Microseconds */
377 DWORD cAxes; /* Number of axes */
378 LPDWORD rgdwAxes; /* Array of axes */
379 LPLONG rglDirection; /* Array of directions */
380 LPDIENVELOPE lpEnvelope; /* Optional */
381 DWORD cbTypeSpecificParams; /* Size of params */
382 LPVOID lpvTypeSpecificParams; /* Pointer to params */
383 DWORD dwStartDelay; /* Microseconds */ // -- fields here are Dinput >= 0x0600
384 };
387 using LPCDIEFFECT = const DIEFFECT*;
388
390 {
397 };
402 {
407 };
412 {
416 union
417 {
420 };
424 };
427
429 {
444 };
449 {
459 };
463
465 {
475 };
477
478 struct __declspec(uuid("00000000-0000-0000-C000-000000000046")) __declspec(novtable)
479 IUnknown
480 {
481 virtual HRESULT QueryInterface(const GUID&, void**) noexcept = 0;
482 virtual std::uint32_t AddRef() noexcept = 0;
483 virtual std::uint32_t Release() noexcept = 0;
484 };
485 using LPUNKNOWN = IUnknown*;
486
488 {
496 IUnknown* lpUnkDDSTarget;
497 };
499
500 struct __declspec(novtable) IDirectInputEffect : public IUnknown
501 {
502 virtual HRESULT Initialize(HINSTANCE, DWORD, REFGUID) noexcept = 0;
503 virtual HRESULT GetEffectGuid(LPGUID) noexcept = 0;
504 virtual HRESULT GetParameters(LPDIEFFECT, DWORD) noexcept = 0;
505 virtual HRESULT SetParameters(LPCDIEFFECT, DWORD) noexcept = 0;
506 virtual HRESULT Start(std::uint32_t, std::uint32_t) noexcept = 0;
507 virtual HRESULT Stop() noexcept = 0;
508 virtual HRESULT GetEffectStatus(std::uint32_t*) noexcept = 0;
509 virtual HRESULT Download() noexcept = 0;
510 virtual HRESULT Unload() noexcept = 0;
511 virtual HRESULT Escape(LPDIEFFESCAPE) noexcept = 0;
512 };
513 using LPDIRECTINPUTEFFECT = IDirectInputEffect*;
514 using LPCDIRECTINPUTEFFECT = const IDirectInputEffect*;
515
517 using LPDICONFIGUREDEVICESCALLBACK = bool(__stdcall*)(IUnknown*, void*);
518 using LPDIENUMDEVICESCALLBACKA = bool(__stdcall*)(const DIDEVICEINSTANCEA*, void*);
519
520 using LPDIENUMEFFECTSCALLBACKA = bool(__stdcall*)(const DIEFFECTINFOA*, void*);
521
522 using LPDIENUMEFFECTSINFILECALLBACK = bool(__stdcall*)(const DIFILEEFFECT*, void*);
523
524 struct __declspec(novtable) IDirectInputDevice8A : public IUnknown
525 {
526 virtual HRESULT GetCapabilities(DIDEVCAPS*) noexcept = 0;
527 virtual HRESULT EnumObjects(LPDIENUMDEVICEOBJECTSCALLBACKA, void*, std::uint32_t) noexcept = 0;
528 virtual HRESULT GetProperty(std::uint32_t, DIPROPHEADER*) noexcept = 0;
529 virtual HRESULT SetProperty(std::uint32_t, const DIPROPHEADER*) noexcept = 0;
530 virtual HRESULT Acquire() noexcept = 0;
531 virtual HRESULT Unacquire() noexcept = 0;
532 virtual HRESULT GetDeviceState(std::uint32_t, void*) noexcept = 0;
533 virtual HRESULT GetDeviceData(std::uint32_t, DIDEVICEOBJECTDATA*, std::uint32_t*, std::uint32_t) noexcept = 0;
534 virtual HRESULT SetDataFormat(const DIDATAFORMAT*) noexcept = 0;
535 virtual HRESULT SetEventNotification(HANDLE) noexcept = 0;
536 virtual HRESULT SetCooperativeLevel(HWND, std::uint32_t) noexcept = 0;
537 virtual HRESULT GetObjectInfo(DIDEVICEOBJECTINSTANCEA*, std::uint32_t, std::uint32_t) noexcept = 0;
538 virtual HRESULT GetDeviceInfo(DIDEVICEINSTANCEA*) noexcept = 0;
539 virtual HRESULT RunControlPanel(HWND, std::uint32_t) noexcept = 0;
540 virtual HRESULT Initialize(HINSTANCE, std::uint32_t, const GUID&) noexcept = 0;
541 virtual HRESULT CreateEffect(const GUID&, const DIEFFECT*, IDirectInputEffect*, IUnknown*) noexcept = 0;
542 virtual HRESULT EnumEffects(LPDIENUMEFFECTSCALLBACKA, void*, std::uint32_t) noexcept = 0;
543 virtual HRESULT GetEffectInfo(DIEFFECTINFOA*, const GUID&) noexcept = 0;
544 virtual HRESULT GetForceFeedbackState(std::uint32_t*) noexcept = 0;
545 virtual HRESULT SendForceFeedbackCommand(std::uint32_t) noexcept = 0;
546 virtual HRESULT EnumCreatedEffectObjects(LPDIENUMCREATEDEFFECTOBJECTSCALLBACK, void*, std::uint32_t) noexcept = 0;
547 virtual HRESULT Escape(DIEFFESCAPE*) noexcept = 0;
548 virtual HRESULT Poll() noexcept = 0;
549 virtual HRESULT SendDeviceData(std::uint32_t, const DIDEVICEOBJECTDATA*, std::uint32_t*, std::uint32_t) noexcept = 0;
550 virtual HRESULT EnumEffectsInFile(const char*, LPDIENUMEFFECTSINFILECALLBACK, void*, std::uint32_t) noexcept = 0;
551 virtual HRESULT WriteEffectToFile(const char*, std::uint32_t, DIFILEEFFECT*, std::uint32_t) noexcept = 0;
552 virtual HRESULT BuildActionMap(DIACTIONFORMATA*, const char*, std::uint32_t) noexcept = 0;
553 virtual HRESULT SetActionMap(DIACTIONFORMATA*, const char*, std::uint32_t) noexcept = 0;
554 virtual HRESULT GetImageInfo(DIDEVICEIMAGEINFOHEADERA*) noexcept = 0;
555 };
556
557 using LPDIENUMDEVICESBYSEMANTICSCBA = bool(__stdcall*)(const DIDEVICEINSTANCEA*, IDirectInputDevice8A*, DWORD, DWORD, LPVOID);
558
559 struct __declspec(novtable) IDirectInput8A : public IUnknown
560 {
561 virtual HRESULT CreateDevice(const GUID&, IDirectInputDevice8A**, IUnknown*) noexcept = 0;
562 virtual HRESULT EnumDevices(std::uint32_t, LPDIENUMDEVICESCALLBACKA, void*, std::uint32_t) noexcept = 0;
563 virtual HRESULT GetDeviceStatus(const GUID&) noexcept = 0;
564 virtual HRESULT RunControlPanel(HWND, std::uint32_t) noexcept = 0;
565 virtual HRESULT Initialize(HINSTANCE, std::uint32_t) noexcept = 0;
566 virtual HRESULT FindDevice(const GUID&, const char*, GUID*) noexcept = 0;
567 virtual HRESULT EnumDevicesBySemantics(const char*, LPDIACTIONFORMATA, LPDIENUMDEVICESBYSEMANTICSCBA, void*, std::uint32_t) noexcept = 0;
568 virtual HRESULT ConfigureDevices(LPDICONFIGUREDEVICESCALLBACK, DICONFIGUREDEVICESPARAMSA*, std::uint32_t, void*) noexcept = 0;
569 };
570
571}
#define MAX_PATH
Definition WinAPI.h:574
Definition DInputAPI.h:8
bool(__stdcall *)(const DIFILEEFFECT *, void *) LPDIENUMEFFECTSINFILECALLBACK
Definition DInputAPI.h:522
SKSE::WinAPI::HRESULT HRESULT
Definition DInputAPI.h:38
void * HANDLE
Definition DInputAPI.h:20
bool(__stdcall *)(const DIDEVICEINSTANCEA *, void *) LPDIENUMDEVICESCALLBACKA
Definition DInputAPI.h:518
LONG * LPLONG
Definition DInputAPI.h:23
DWORD * LPDWORD
Definition DInputAPI.h:21
WORD * LPWORD
Definition DInputAPI.h:24
const DIEFFECTINFOA * LPCDIEFFECTINFOA
Definition DInputAPI.h:364
std::uint32_t UINT
Definition DInputAPI.h:13
DIKey
Definition DInputAPI.h:43
@ DIK_D
Definition DInputAPI.h:75
@ DIK_PRIOR
Definition DInputAPI.h:165
@ DIK_PGDN
Definition DInputAPI.h:202
@ DIK_G
Definition DInputAPI.h:77
@ DIK_WEBHOME
Definition DInputAPI.h:157
@ DIK_NUMPAD5
Definition DInputAPI.h:119
@ DIK_N
Definition DInputAPI.h:92
@ DIK_F3
Definition DInputAPI.h:104
@ DIK_RIGHTARROW
Definition DInputAPI.h:200
@ DIK_OEM_102
Definition DInputAPI.h:127
@ DIK_0
Definition DInputAPI.h:54
@ DIK_NUMPAD7
Definition DInputAPI.h:114
@ DIK_TAB
Definition DInputAPI.h:58
@ DIK_NEXT
Definition DInputAPI.h:170
@ DIK_RALT
Definition DInputAPI.h:196
@ DIK_SLEEP
Definition DInputAPI.h:177
@ DIK_O
Definition DInputAPI.h:67
@ DIK_J
Definition DInputAPI.h:79
@ DIK_PGUP
Definition DInputAPI.h:198
@ DIK_GRAVE
Definition DInputAPI.h:84
@ DIK_R
Definition DInputAPI.h:62
@ DIK_LALT
Definition DInputAPI.h:190
@ DIK_A
Definition DInputAPI.h:73
@ DIK_NUMPAD0
Definition DInputAPI.h:125
@ DIK_DIVIDE
Definition DInputAPI.h:159
@ DIK_INSERT
Definition DInputAPI.h:171
@ DIK_F9
Definition DInputAPI.h:110
@ DIK_E
Definition DInputAPI.h:61
@ DIK_P
Definition DInputAPI.h:68
@ DIK_KANJI
Definition DInputAPI.h:144
@ DIK_8
Definition DInputAPI.h:52
@ DIK_PLAYPAUSE
Definition DInputAPI.h:153
@ DIK_NUMPAD4
Definition DInputAPI.h:118
@ DIK_7
Definition DInputAPI.h:51
@ DIK_NUMPADPERIOD
Definition DInputAPI.h:194
@ DIK_SYSRQ
Definition DInputAPI.h:160
@ DIK_UNLABELED
Definition DInputAPI.h:147
@ DIK_6
Definition DInputAPI.h:50
@ DIK_RWIN
Definition DInputAPI.h:174
@ DIK_F13
Definition DInputAPI.h:130
@ DIK_W
Definition DInputAPI.h:60
@ DIK_F
Definition DInputAPI.h:76
@ DIK_POWER
Definition DInputAPI.h:176
@ DIK_MEDIASTOP
Definition DInputAPI.h:154
@ DIK_NUMPAD1
Definition DInputAPI.h:122
@ DIK_APPS
Definition DInputAPI.h:175
@ DIK_NUMPADENTER
Definition DInputAPI.h:149
@ DIK_C
Definition DInputAPI.h:89
@ DIK_F2
Definition DInputAPI.h:103
@ DIK_1
Definition DInputAPI.h:45
@ DIK_SLASH
Definition DInputAPI.h:96
@ DIK_5
Definition DInputAPI.h:49
@ DIK_ADD
Definition DInputAPI.h:121
@ DIK_F14
Definition DInputAPI.h:131
@ DIK_RSHIFT
Definition DInputAPI.h:97
@ DIK_RMENU
Definition DInputAPI.h:161
@ DIK_WEBFAVORITES
Definition DInputAPI.h:180
@ DIK_MINUS
Definition DInputAPI.h:55
@ DIK_STOP
Definition DInputAPI.h:145
@ DIK_LMENU
Definition DInputAPI.h:99
@ DIK_CONVERT
Definition DInputAPI.h:135
@ DIK_PREVTRACK
Definition DInputAPI.h:140
@ DIK_SEMICOLON
Definition DInputAPI.h:82
@ DIK_L
Definition DInputAPI.h:81
@ DIK_BACKSPACE
Definition DInputAPI.h:188
@ DIK_YEN
Definition DInputAPI.h:137
@ DIK_ABNT_C2
Definition DInputAPI.h:138
@ DIK_NUMPAD8
Definition DInputAPI.h:115
@ DIK_NUMPADEQUALS
Definition DInputAPI.h:139
@ DIK_NUMPAD2
Definition DInputAPI.h:123
@ DIK_F8
Definition DInputAPI.h:109
@ DIK_UPARROW
Definition DInputAPI.h:197
@ DIK_HOME
Definition DInputAPI.h:163
@ DIK_DECIMAL
Definition DInputAPI.h:126
@ DIK_WAKE
Definition DInputAPI.h:178
@ DIK_F12
Definition DInputAPI.h:129
@ DIK_MEDIASELECT
Definition DInputAPI.h:187
@ DIK_RCONTROL
Definition DInputAPI.h:150
@ DIK_CAPITAL
Definition DInputAPI.h:101
@ DIK_3
Definition DInputAPI.h:47
@ DIK_WEBSEARCH
Definition DInputAPI.h:179
@ DIK_WEBBACK
Definition DInputAPI.h:184
@ DIK_NOCONVERT
Definition DInputAPI.h:136
@ DIK_F1
Definition DInputAPI.h:102
@ DIK_NUMLOCK
Definition DInputAPI.h:112
@ DIK_B
Definition DInputAPI.h:91
@ DIK_AT
Definition DInputAPI.h:141
@ DIK_EQUALS
Definition DInputAPI.h:56
@ DIK_PAUSE
Definition DInputAPI.h:162
@ DIK_NUMPADSLASH
Definition DInputAPI.h:195
@ DIK_F15
Definition DInputAPI.h:132
@ DIK_DELETE
Definition DInputAPI.h:172
@ DIK_DOWN
Definition DInputAPI.h:169
@ DIK_9
Definition DInputAPI.h:53
@ DIK_LBRACKET
Definition DInputAPI.h:69
@ DIK_RIGHT
Definition DInputAPI.h:167
@ DIK_LWIN
Definition DInputAPI.h:173
@ DIK_S
Definition DInputAPI.h:74
@ DIK_NUMPADSTAR
Definition DInputAPI.h:189
@ DIK_UNDERLINE
Definition DInputAPI.h:143
@ DIK_DOWNARROW
Definition DInputAPI.h:201
@ DIK_T
Definition DInputAPI.h:63
@ DIK_MUTE
Definition DInputAPI.h:151
@ DIK_COMMA
Definition DInputAPI.h:94
@ DIK_CALCULATOR
Definition DInputAPI.h:152
@ DIK_Y
Definition DInputAPI.h:64
@ DIK_ESCAPE
Definition DInputAPI.h:44
@ DIK_V
Definition DInputAPI.h:90
@ DIK_MULTIPLY
Definition DInputAPI.h:98
@ DIK_X
Definition DInputAPI.h:88
@ DIK_END
Definition DInputAPI.h:168
@ DIK_M
Definition DInputAPI.h:93
@ DIK_F11
Definition DInputAPI.h:128
@ DIK_NUMPADCOMMA
Definition DInputAPI.h:158
@ DIK_SUBTRACT
Definition DInputAPI.h:117
@ DIK_SPACE
Definition DInputAPI.h:100
@ DIK_F7
Definition DInputAPI.h:108
@ DIK_MYCOMPUTER
Definition DInputAPI.h:185
@ DIK_BACKSLASH
Definition DInputAPI.h:86
@ DIK_VOLUMEDOWN
Definition DInputAPI.h:155
@ DIK_LEFT
Definition DInputAPI.h:166
@ DIK_F6
Definition DInputAPI.h:107
@ DIK_F10
Definition DInputAPI.h:111
@ DIK_Q
Definition DInputAPI.h:59
@ DIK_UP
Definition DInputAPI.h:164
@ DIK_4
Definition DInputAPI.h:48
@ DIK_H
Definition DInputAPI.h:78
@ DIK_I
Definition DInputAPI.h:66
@ DIK_RETURN
Definition DInputAPI.h:71
@ DIK_WEBREFRESH
Definition DInputAPI.h:181
@ DIK_AX
Definition DInputAPI.h:146
@ DIK_NUMPADPLUS
Definition DInputAPI.h:193
@ DIK_COLON
Definition DInputAPI.h:142
@ DIK_F5
Definition DInputAPI.h:106
@ DIK_NUMPAD3
Definition DInputAPI.h:124
@ DIK_NUMPAD9
Definition DInputAPI.h:116
@ DIK_SCROLL
Definition DInputAPI.h:113
@ DIK_WEBFORWARD
Definition DInputAPI.h:183
@ DIK_U
Definition DInputAPI.h:65
@ DIK_Z
Definition DInputAPI.h:87
@ DIK_MAIL
Definition DInputAPI.h:186
@ DIK_LEFTARROW
Definition DInputAPI.h:199
@ DIK_RBRACKET
Definition DInputAPI.h:70
@ DIK_ABNT_C1
Definition DInputAPI.h:134
@ DIK_K
Definition DInputAPI.h:80
@ DIK_NUMPADMINUS
Definition DInputAPI.h:192
@ DIK_APOSTROPHE
Definition DInputAPI.h:83
@ DIK_BACK
Definition DInputAPI.h:57
@ DIK_WEBSTOP
Definition DInputAPI.h:182
@ DIK_PERIOD
Definition DInputAPI.h:95
@ DIK_VOLUMEUP
Definition DInputAPI.h:156
@ DIK_2
Definition DInputAPI.h:46
@ DIK_LCONTROL
Definition DInputAPI.h:72
@ DIK_NUMPAD6
Definition DInputAPI.h:120
@ DIK_NEXTTRACK
Definition DInputAPI.h:148
@ DIK_KANA
Definition DInputAPI.h:133
@ DIK_LSHIFT
Definition DInputAPI.h:85
@ DIK_F4
Definition DInputAPI.h:105
@ DIK_CAPSLOCK
Definition DInputAPI.h:191
struct __declspec(uuid("00000000-0000-0000-C000-000000000046")) __declspec(novtable) IUnknown
Definition DInputAPI.h:478
std::int32_t LONG
Definition DInputAPI.h:10
const IDirectInputEffect * LPCDIRECTINPUTEFFECT
Definition DInputAPI.h:514
char CHAR
Definition DInputAPI.h:14
SKSE::WinAPI::GUID GUID
Definition DInputAPI.h:26
SKSE::WinAPI::HINSTANCE HINSTANCE
Definition DInputAPI.h:40
char * LPSTR
Definition DInputAPI.h:16
SKSE::WinAPI::HWND HWND
Definition DInputAPI.h:39
std::uint32_t D3DCOLOR
Definition DInputAPI.h:36
const char * LPCSTR
Definition DInputAPI.h:17
bool(__stdcall *)(IUnknown *, void *) LPDICONFIGUREDEVICESCALLBACK
Definition DInputAPI.h:517
bool(__stdcall *)(LPCDIDEVICEOBJECTINSTANCEA, LPVOID) LPDIENUMDEVICEOBJECTSCALLBACKA
Definition DInputAPI.h:269
void * LPVOID
Definition DInputAPI.h:22
bool(__stdcall *)(LPDIRECTINPUTEFFECT, void *) LPDIENUMCREATEDEFFECTOBJECTSCALLBACK
Definition DInputAPI.h:516
std::uint32_t DWORD
Definition DInputAPI.h:9
std::uint16_t WORD
Definition DInputAPI.h:11
(novtable) IDirectInputDevice8A bool(__stdcall *)(const DIDEVICEINSTANCEA *, IDirectInputDevice8A *, DWORD, DWORD, LPVOID) LPDIENUMDEVICESBYSEMANTICSCBA
Definition DInputAPI.h:557
IUnknown * LPUNKNOWN
Definition DInputAPI.h:485
const DIDEVICEOBJECTINSTANCEA * LPCDIDEVICEOBJECTINSTANCEA
Definition DInputAPI.h:267
bool(__stdcall *)(LPCDIEFFECTINFOA, LPVOID) LPDIENUMEFFECTSCALLBACKA
Definition DInputAPI.h:366
std::uint8_t BYTE
Definition DInputAPI.h:12
std::uintptr_t UINT_PTR
Definition DInputAPI.h:19
(novtable) IDirectInputEffect IDirectInputEffect * LPDIRECTINPUTEFFECT
Definition DInputAPI.h:513
_GUID GUID
Definition WinAPI.h:72
HWND__ * HWND
Definition WinAPI.h:75
std::int32_t HRESULT
Definition WinAPI.h:138
HINSTANCE__ * HINSTANCE
Definition WinAPI.h:78
tagPOINT POINT
Definition WinAPI.h:136
tagRECT RECT
Definition WinAPI.h:129
_FILETIME FILETIME
Definition WinAPI.h:62
Definition DInputAPI.h:412
DWORD dwFlags
Definition DInputAPI.h:415
DWORD dwObjID
Definition DInputAPI.h:422
LPCSTR lptszActionName
Definition DInputAPI.h:418
UINT uResIdString
Definition DInputAPI.h:419
GUID guidInstance
Definition DInputAPI.h:421
DWORD dwHow
Definition DInputAPI.h:423
UINT_PTR uAppData
Definition DInputAPI.h:413
DWORD dwSemantic
Definition DInputAPI.h:414
Definition DInputAPI.h:429
GUID guidActionMap
Definition DInputAPI.h:435
FILETIME ftTimeStamp
Definition DInputAPI.h:441
LONG lAxisMin
Definition DInputAPI.h:438
LONG lAxisMax
Definition DInputAPI.h:439
DWORD dwSize
Definition DInputAPI.h:430
DWORD dwActionSize
Definition DInputAPI.h:431
DWORD dwCRC
Definition DInputAPI.h:442
DWORD dwNumActions
Definition DInputAPI.h:433
LPDIACTIONA rgoAction
Definition DInputAPI.h:434
DWORD dwDataSize
Definition DInputAPI.h:432
DWORD dwGenre
Definition DInputAPI.h:436
HINSTANCE hInstString
Definition DInputAPI.h:440
DWORD dwBufferSize
Definition DInputAPI.h:437
CHAR tszActionMap[MAX_PATH]
Definition DInputAPI.h:443
Definition DInputAPI.h:465
D3DCOLOR cBorder
Definition DInputAPI.h:471
D3DCOLOR cCalloutLine
Definition DInputAPI.h:469
D3DCOLOR cAreaFill
Definition DInputAPI.h:474
DWORD dwSize
Definition DInputAPI.h:466
D3DCOLOR cHighlightFill
Definition DInputAPI.h:473
D3DCOLOR cTextFore
Definition DInputAPI.h:467
D3DCOLOR cTextHighlight
Definition DInputAPI.h:468
D3DCOLOR cControlFill
Definition DInputAPI.h:472
D3DCOLOR cCalloutHighlight
Definition DInputAPI.h:470
DWORD dwcFormats
Definition DInputAPI.h:492
DICOLORSET dics
Definition DInputAPI.h:495
DWORD dwcUsers
Definition DInputAPI.h:490
HWND hwnd
Definition DInputAPI.h:494
LPDIACTIONFORMATA lprgFormats
Definition DInputAPI.h:493
DWORD dwSize
Definition DInputAPI.h:489
LPSTR lptszUserNames
Definition DInputAPI.h:491
IUnknown * lpUnkDDSTarget
Definition DInputAPI.h:496
Definition DInputAPI.h:329
DWORD dwDataSize
Definition DInputAPI.h:333
DWORD dwSize
Definition DInputAPI.h:330
DWORD dwObjSize
Definition DInputAPI.h:331
LPDIOBJECTDATAFORMAT rgodf
Definition DInputAPI.h:335
DWORD dwFlags
Definition DInputAPI.h:332
DWORD dwNumObjs
Definition DInputAPI.h:334
Definition DInputAPI.h:302
DWORD dwcValidPts
Definition DInputAPI.h:308
POINT rgptCalloutLine[5]
Definition DInputAPI.h:309
CHAR tszImagePath[MAX_PATH]
Definition DInputAPI.h:303
DWORD dwTextAlign
Definition DInputAPI.h:311
RECT rcOverlay
Definition DInputAPI.h:306
RECT rcCalloutRect
Definition DInputAPI.h:310
DWORD dwFlags
Definition DInputAPI.h:304
DWORD dwObjID
Definition DInputAPI.h:307
DWORD dwViewID
Definition DInputAPI.h:305
DWORD dwcViews
Definition DInputAPI.h:452
DWORD dwSizeImageInfo
Definition DInputAPI.h:451
LPDIDEVICEIMAGEINFOA lprgImageInfoArray
Definition DInputAPI.h:458
DWORD dwBufferUsed
Definition DInputAPI.h:457
DWORD dwcAxes
Definition DInputAPI.h:454
DWORD dwcButtons
Definition DInputAPI.h:453
DWORD dwcPOVs
Definition DInputAPI.h:455
DWORD dwSize
Definition DInputAPI.h:450
DWORD dwBufferSize
Definition DInputAPI.h:456
Definition DInputAPI.h:318
DWORD dwFlags
Definition DInputAPI.h:322
DWORD dwType
Definition DInputAPI.h:321
const GUID * pguid
Definition DInputAPI.h:319
DWORD dwOfs
Definition DInputAPI.h:320
Definition DInputAPI.h:284
DWORD dwPOVs
Definition DInputAPI.h:290
DWORD dwAxes
Definition DInputAPI.h:288
DWORD dwSize
Definition DInputAPI.h:285
DWORD dwFFMinTimeResolution
Definition DInputAPI.h:292
DWORD dwFFSamplePeriod
Definition DInputAPI.h:291
DWORD dwFlags
Definition DInputAPI.h:286
DWORD dwButtons
Definition DInputAPI.h:289
DWORD dwDevType
Definition DInputAPI.h:287
DWORD dwFFDriverVersion
Definition DInputAPI.h:295
DWORD dwFirmwareRevision
Definition DInputAPI.h:293
DWORD dwHardwareRevision
Definition DInputAPI.h:294
Definition DInputAPI.h:230
WORD wUsagePage
Definition DInputAPI.h:238
DWORD dwDevType
Definition DInputAPI.h:234
GUID guidProduct
Definition DInputAPI.h:233
WORD wUsage
Definition DInputAPI.h:239
GUID guidFFDriver
Definition DInputAPI.h:237
CHAR tszInstanceName[MAX_PATH]
Definition DInputAPI.h:235
CHAR tszProductName[MAX_PATH]
Definition DInputAPI.h:236
GUID guidInstance
Definition DInputAPI.h:232
DWORD dwSize
Definition DInputAPI.h:231
Definition DInputAPI.h:217
DWORD dwSequence
Definition DInputAPI.h:221
DWORD dwTimeStamp
Definition DInputAPI.h:220
DWORD dwData
Definition DInputAPI.h:219
UINT_PTR uAppData
Definition DInputAPI.h:222
DWORD dwOfs
Definition DInputAPI.h:218
DWORD dwFFForceResolution
Definition DInputAPI.h:255
GUID guidType
Definition DInputAPI.h:248
DWORD dwSize
Definition DInputAPI.h:247
DWORD dwDimension
Definition DInputAPI.h:260
WORD wCollectionNumber
Definition DInputAPI.h:256
WORD wDesignatorIndex
Definition DInputAPI.h:257
DWORD dwFlags
Definition DInputAPI.h:251
WORD wExponent
Definition DInputAPI.h:261
WORD wReportId
Definition DInputAPI.h:262
DWORD dwOfs
Definition DInputAPI.h:249
WORD wUsagePage
Definition DInputAPI.h:258
DWORD dwFFMaxForce
Definition DInputAPI.h:254
WORD wUsage
Definition DInputAPI.h:259
CHAR tszName[MAX_PATH]
Definition DInputAPI.h:252
DWORD dwType
Definition DInputAPI.h:250
Definition DInputAPI.h:369
DWORD dwTriggerButton
Definition DInputAPI.h:375
LPDIENVELOPE lpEnvelope
Definition DInputAPI.h:380
DWORD dwSamplePeriod
Definition DInputAPI.h:373
DWORD dwStartDelay
Definition DInputAPI.h:383
DWORD cbTypeSpecificParams
Definition DInputAPI.h:381
LPVOID lpvTypeSpecificParams
Definition DInputAPI.h:382
DWORD dwDuration
Definition DInputAPI.h:372
DWORD cAxes
Definition DInputAPI.h:377
DWORD dwGain
Definition DInputAPI.h:374
DWORD dwSize
Definition DInputAPI.h:370
LPDWORD rgdwAxes
Definition DInputAPI.h:378
LPLONG rglDirection
Definition DInputAPI.h:379
DWORD dwTriggerRepeatInterval
Definition DInputAPI.h:376
DWORD dwFlags
Definition DInputAPI.h:371
Definition DInputAPI.h:354
DWORD dwSize
Definition DInputAPI.h:355
DWORD dwStaticParams
Definition DInputAPI.h:358
DWORD dwEffType
Definition DInputAPI.h:357
GUID guid
Definition DInputAPI.h:356
CHAR tszName[MAX_PATH]
Definition DInputAPI.h:360
DWORD dwDynamicParams
Definition DInputAPI.h:359
Definition DInputAPI.h:390
DWORD dwSize
Definition DInputAPI.h:391
DWORD cbOutBuffer
Definition DInputAPI.h:396
LPVOID lpvInBuffer
Definition DInputAPI.h:393
LPVOID lpvOutBuffer
Definition DInputAPI.h:395
DWORD cbInBuffer
Definition DInputAPI.h:394
DWORD dwCommand
Definition DInputAPI.h:392
Definition DInputAPI.h:342
DWORD dwFadeTime
Definition DInputAPI.h:347
DWORD dwFadeLevel
Definition DInputAPI.h:346
DWORD dwAttackTime
Definition DInputAPI.h:345
DWORD dwAttackLevel
Definition DInputAPI.h:344
DWORD dwSize
Definition DInputAPI.h:343
Definition DInputAPI.h:402
CHAR szFriendlyName[MAX_PATH]
Definition DInputAPI.h:406
GUID GuidEffect
Definition DInputAPI.h:404
LPCDIEFFECT lpDiEffect
Definition DInputAPI.h:405
DWORD dwSize
Definition DInputAPI.h:403
Definition DInputAPI.h:206
BYTE rgbButtons[8]
Definition DInputAPI.h:210
LONG lZ
Definition DInputAPI.h:209
LONG lX
Definition DInputAPI.h:207
LONG lY
Definition DInputAPI.h:208
Definition DInputAPI.h:272
DWORD dwHow
Definition DInputAPI.h:276
DWORD dwSize
Definition DInputAPI.h:273
DWORD dwHeaderSize
Definition DInputAPI.h:274
DWORD dwObj
Definition DInputAPI.h:275
Definition WinAPI.h:55
Definition WinAPI.h:65
Definition WinAPI.h:132
Definition WinAPI.h:123