9 struct IDirectInputDevice8A;
10 struct IDirectInputEffect;
15 enum DIK : std::uint32_t
182 struct DIOBJECTDATAFORMAT;
431 struct __declspec(novtable, uuid(
"BF798030-483A-4DA2-AA99-5D64ED369700"))
432 IDirectInput8A :
public IUnknown
434 virtual HRESULT CreateDevice(
const GUID&, IDirectInputDevice8A**, IUnknown*)
noexcept = 0;
436 virtual HRESULT GetDeviceStatus(
const GUID&)
noexcept = 0;
437 virtual HRESULT RunControlPanel(
HWND, std::uint32_t)
noexcept = 0;
439 virtual HRESULT FindDevice(
const GUID&,
const char*, GUID*)
noexcept = 0;
444 struct __declspec(novtable, uuid(
"54D41080-DC15-4833-A41B-748F73A38179"))
445 IDirectInputDevice8A :
public IUnknown
447 virtual HRESULT GetCapabilities(DIDEVCAPS*)
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;
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;
462 virtual
HRESULT CreateEffect(const GUID&, const DIEFFECT*, IDirectInputEffect*, IUnknown*) 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;
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;
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;
478 struct
__declspec(novtable, uuid("E7E1F7C0-88D2-11D0-9AD0-00A0C9A06E35"))
479 IDirectInputEffect : public IUnknown
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;
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 } };
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
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
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
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
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
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
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
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
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
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
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
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
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
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