dinputd.h 40 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198
  1. /*** Autogenerated by WIDL 7.7 from include/dinputd.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __dinputd_h__
  14. #define __dinputd_h__
  15. /* Forward declarations */
  16. #ifndef __IDirectInputEffectDriver_FWD_DEFINED__
  17. #define __IDirectInputEffectDriver_FWD_DEFINED__
  18. typedef interface IDirectInputEffectDriver IDirectInputEffectDriver;
  19. #ifdef __cplusplus
  20. interface IDirectInputEffectDriver;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IDirectInputJoyConfig_FWD_DEFINED__
  24. #define __IDirectInputJoyConfig_FWD_DEFINED__
  25. typedef interface IDirectInputJoyConfig IDirectInputJoyConfig;
  26. #ifdef __cplusplus
  27. interface IDirectInputJoyConfig;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IDirectInputJoyConfig8_FWD_DEFINED__
  31. #define __IDirectInputJoyConfig8_FWD_DEFINED__
  32. typedef interface IDirectInputJoyConfig8 IDirectInputJoyConfig8;
  33. #ifdef __cplusplus
  34. interface IDirectInputJoyConfig8;
  35. #endif /* __cplusplus */
  36. #endif
  37. /* Headers for imported files */
  38. #include <unknwn.h>
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42. #include "winapifamily.h"
  43. #ifndef DIRECTINPUT_VERSION
  44. #define DIRECTINPUT_VERSION 0x0800
  45. #endif
  46. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  47. typedef struct DIOBJECTATTRIBUTES {
  48. DWORD dwFlags;
  49. WORD wUsagePage;
  50. WORD wUsage;
  51. } DIOBJECTATTRIBUTES;
  52. typedef struct DIOBJECTATTRIBUTES *LPDIOBJECTATTRIBUTES;
  53. typedef const DIOBJECTATTRIBUTES *LPCDIOBJECTATTRIBUTES;
  54. typedef struct DIFFOBJECTATTRIBUTES {
  55. DWORD dwFFMaxForce;
  56. DWORD dwFFForceResolution;
  57. } DIFFOBJECTATTRIBUTES;
  58. typedef struct DIFFOBJECTATTRIBUTES *LPDIFFOBJECTATTRIBUTES;
  59. typedef const DIFFOBJECTATTRIBUTES *LPCDIFFOBJECTATTRIBUTES;
  60. typedef struct DIOBJECTCALIBRATION {
  61. LONG lMin;
  62. LONG lCenter;
  63. LONG lMax;
  64. } DIOBJECTCALIBRATION;
  65. typedef struct DIOBJECTCALIBRATION *LPDIOBJECTCALIBRATION;
  66. typedef const DIOBJECTCALIBRATION *LPCDIOBJECTCALIBRATION;
  67. typedef struct DIPOVCALIBRATION {
  68. LONG lMin[5];
  69. LONG lMax[5];
  70. } DIPOVCALIBRATION;
  71. typedef struct DIPOVCALIBRATION *LPDIPOVCALIBRATION;
  72. typedef const DIPOVCALIBRATION *LPCDIPOVCALIBRATION;
  73. typedef struct DIEFFECTATTRIBUTES {
  74. DWORD dwEffectId;
  75. DWORD dwEffType;
  76. DWORD dwStaticParams;
  77. DWORD dwDynamicParams;
  78. DWORD dwCoords;
  79. } DIEFFECTATTRIBUTES;
  80. typedef struct DIEFFECTATTRIBUTES *LPDIEFFECTATTRIBUTES;
  81. typedef const DIEFFECTATTRIBUTES *LPCDIEFFECTATTRIBUTES;
  82. typedef struct DIFFDEVICEATTRIBUTES {
  83. DWORD dwFlags;
  84. DWORD dwFFSamplePeriod;
  85. DWORD dwFFMinTimeResolution;
  86. } DIFFDEVICEATTRIBUTES;
  87. typedef struct DIFFDEVICEATTRIBUTES *LPDIFFDEVICEATTRIBUTES;
  88. typedef const DIFFDEVICEATTRIBUTES *LPCDIFFDEVICEATTRIBUTES;
  89. typedef struct DIDRIVERVERSIONS {
  90. DWORD dwSize;
  91. DWORD dwFirmwareRevision;
  92. DWORD dwHardwareRevision;
  93. DWORD dwFFDriverVersion;
  94. } DIDRIVERVERSIONS;
  95. typedef struct DIDRIVERVERSIONS *LPDIDRIVERVERSIONS;
  96. typedef const DIDRIVERVERSIONS *LPCDIDRIVERVERSIONS;
  97. typedef struct DIDEVICESTATE {
  98. DWORD dwSize;
  99. DWORD dwState;
  100. DWORD dwLoad;
  101. } DIDEVICESTATE;
  102. typedef struct DIDEVICESTATE *LPDIDEVICESTATE;
  103. #define DEV_STS_EFFECT_RUNNING DIEGES_PLAYING
  104. #ifndef DIJ_RINGZERO
  105. typedef struct DIHIDFFINITINFO {
  106. DWORD dwSize;
  107. LPWSTR pwszDeviceInterface;
  108. GUID GuidInstance;
  109. } DIHIDFFINITINFO;
  110. typedef struct DIHIDFFINITINFO *LPDIHIDFFINITINFO;
  111. #if 0
  112. typedef struct DIEFFESCAPE DIEFFESCAPE;
  113. typedef struct DIEFFESCAPE *LPDIEFFESCAPE;
  114. typedef struct DIEFFECT DIEFFECT;
  115. typedef struct DIEFFECT *LPDIEFFECT;
  116. typedef const DIEFFECT *LPCDIEFFECT;
  117. #endif
  118. /*****************************************************************************
  119. * IDirectInputEffectDriver interface
  120. */
  121. #ifndef __IDirectInputEffectDriver_INTERFACE_DEFINED__
  122. #define __IDirectInputEffectDriver_INTERFACE_DEFINED__
  123. DEFINE_GUID(IID_IDirectInputEffectDriver, 0x02538130, 0x898f, 0x11d0, 0x9a,0xd0, 0x00,0xa0,0xc9,0xa0,0x6e,0x35);
  124. #if defined(__cplusplus) && !defined(CINTERFACE)
  125. MIDL_INTERFACE("02538130-898f-11d0-9ad0-00a0c9a06e35")
  126. IDirectInputEffectDriver : public IUnknown
  127. {
  128. virtual HRESULT STDMETHODCALLTYPE DeviceID(
  129. DWORD a,
  130. DWORD b,
  131. DWORD c,
  132. DWORD d,
  133. LPVOID e) = 0;
  134. virtual HRESULT STDMETHODCALLTYPE GetVersions(
  135. LPDIDRIVERVERSIONS a) = 0;
  136. virtual HRESULT STDMETHODCALLTYPE Escape(
  137. DWORD a,
  138. DWORD b,
  139. LPDIEFFESCAPE c) = 0;
  140. virtual HRESULT STDMETHODCALLTYPE SetGain(
  141. DWORD a,
  142. DWORD b) = 0;
  143. virtual HRESULT STDMETHODCALLTYPE SendForceFeedbackCommand(
  144. DWORD a,
  145. DWORD b) = 0;
  146. virtual HRESULT STDMETHODCALLTYPE GetForceFeedbackState(
  147. DWORD a,
  148. LPDIDEVICESTATE b) = 0;
  149. virtual HRESULT STDMETHODCALLTYPE DownloadEffect(
  150. DWORD a,
  151. DWORD b,
  152. LPDWORD c,
  153. LPCDIEFFECT d,
  154. DWORD e) = 0;
  155. virtual HRESULT STDMETHODCALLTYPE DestroyEffect(
  156. DWORD a,
  157. DWORD b) = 0;
  158. virtual HRESULT STDMETHODCALLTYPE StartEffect(
  159. DWORD a,
  160. DWORD b,
  161. DWORD c,
  162. DWORD d) = 0;
  163. virtual HRESULT STDMETHODCALLTYPE StopEffect(
  164. DWORD a,
  165. DWORD b) = 0;
  166. virtual HRESULT STDMETHODCALLTYPE GetEffectStatus(
  167. DWORD a,
  168. DWORD b,
  169. LPDWORD c) = 0;
  170. };
  171. #ifdef __CRT_UUID_DECL
  172. __CRT_UUID_DECL(IDirectInputEffectDriver, 0x02538130, 0x898f, 0x11d0, 0x9a,0xd0, 0x00,0xa0,0xc9,0xa0,0x6e,0x35)
  173. #endif
  174. #else
  175. typedef struct IDirectInputEffectDriverVtbl {
  176. BEGIN_INTERFACE
  177. /*** IUnknown methods ***/
  178. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  179. IDirectInputEffectDriver *This,
  180. REFIID riid,
  181. void **ppvObject);
  182. ULONG (STDMETHODCALLTYPE *AddRef)(
  183. IDirectInputEffectDriver *This);
  184. ULONG (STDMETHODCALLTYPE *Release)(
  185. IDirectInputEffectDriver *This);
  186. /*** IDirectInputEffectDriver methods ***/
  187. HRESULT (STDMETHODCALLTYPE *DeviceID)(
  188. IDirectInputEffectDriver *This,
  189. DWORD a,
  190. DWORD b,
  191. DWORD c,
  192. DWORD d,
  193. LPVOID e);
  194. HRESULT (STDMETHODCALLTYPE *GetVersions)(
  195. IDirectInputEffectDriver *This,
  196. LPDIDRIVERVERSIONS a);
  197. HRESULT (STDMETHODCALLTYPE *Escape)(
  198. IDirectInputEffectDriver *This,
  199. DWORD a,
  200. DWORD b,
  201. LPDIEFFESCAPE c);
  202. HRESULT (STDMETHODCALLTYPE *SetGain)(
  203. IDirectInputEffectDriver *This,
  204. DWORD a,
  205. DWORD b);
  206. HRESULT (STDMETHODCALLTYPE *SendForceFeedbackCommand)(
  207. IDirectInputEffectDriver *This,
  208. DWORD a,
  209. DWORD b);
  210. HRESULT (STDMETHODCALLTYPE *GetForceFeedbackState)(
  211. IDirectInputEffectDriver *This,
  212. DWORD a,
  213. LPDIDEVICESTATE b);
  214. HRESULT (STDMETHODCALLTYPE *DownloadEffect)(
  215. IDirectInputEffectDriver *This,
  216. DWORD a,
  217. DWORD b,
  218. LPDWORD c,
  219. LPCDIEFFECT d,
  220. DWORD e);
  221. HRESULT (STDMETHODCALLTYPE *DestroyEffect)(
  222. IDirectInputEffectDriver *This,
  223. DWORD a,
  224. DWORD b);
  225. HRESULT (STDMETHODCALLTYPE *StartEffect)(
  226. IDirectInputEffectDriver *This,
  227. DWORD a,
  228. DWORD b,
  229. DWORD c,
  230. DWORD d);
  231. HRESULT (STDMETHODCALLTYPE *StopEffect)(
  232. IDirectInputEffectDriver *This,
  233. DWORD a,
  234. DWORD b);
  235. HRESULT (STDMETHODCALLTYPE *GetEffectStatus)(
  236. IDirectInputEffectDriver *This,
  237. DWORD a,
  238. DWORD b,
  239. LPDWORD c);
  240. END_INTERFACE
  241. } IDirectInputEffectDriverVtbl;
  242. interface IDirectInputEffectDriver {
  243. CONST_VTBL IDirectInputEffectDriverVtbl* lpVtbl;
  244. };
  245. #ifdef COBJMACROS
  246. #ifndef WIDL_C_INLINE_WRAPPERS
  247. /*** IUnknown methods ***/
  248. #define IDirectInputEffectDriver_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  249. #define IDirectInputEffectDriver_AddRef(This) (This)->lpVtbl->AddRef(This)
  250. #define IDirectInputEffectDriver_Release(This) (This)->lpVtbl->Release(This)
  251. /*** IDirectInputEffectDriver methods ***/
  252. #define IDirectInputEffectDriver_DeviceID(This,a,b,c,d,e) (This)->lpVtbl->DeviceID(This,a,b,c,d,e)
  253. #define IDirectInputEffectDriver_GetVersions(This,a) (This)->lpVtbl->GetVersions(This,a)
  254. #define IDirectInputEffectDriver_Escape(This,a,b,c) (This)->lpVtbl->Escape(This,a,b,c)
  255. #define IDirectInputEffectDriver_SetGain(This,a,b) (This)->lpVtbl->SetGain(This,a,b)
  256. #define IDirectInputEffectDriver_SendForceFeedbackCommand(This,a,b) (This)->lpVtbl->SendForceFeedbackCommand(This,a,b)
  257. #define IDirectInputEffectDriver_GetForceFeedbackState(This,a,b) (This)->lpVtbl->GetForceFeedbackState(This,a,b)
  258. #define IDirectInputEffectDriver_DownloadEffect(This,a,b,c,d,e) (This)->lpVtbl->DownloadEffect(This,a,b,c,d,e)
  259. #define IDirectInputEffectDriver_DestroyEffect(This,a,b) (This)->lpVtbl->DestroyEffect(This,a,b)
  260. #define IDirectInputEffectDriver_StartEffect(This,a,b,c,d) (This)->lpVtbl->StartEffect(This,a,b,c,d)
  261. #define IDirectInputEffectDriver_StopEffect(This,a,b) (This)->lpVtbl->StopEffect(This,a,b)
  262. #define IDirectInputEffectDriver_GetEffectStatus(This,a,b,c) (This)->lpVtbl->GetEffectStatus(This,a,b,c)
  263. #else
  264. /*** IUnknown methods ***/
  265. static FORCEINLINE HRESULT IDirectInputEffectDriver_QueryInterface(IDirectInputEffectDriver* This,REFIID riid,void **ppvObject) {
  266. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  267. }
  268. static FORCEINLINE ULONG IDirectInputEffectDriver_AddRef(IDirectInputEffectDriver* This) {
  269. return This->lpVtbl->AddRef(This);
  270. }
  271. static FORCEINLINE ULONG IDirectInputEffectDriver_Release(IDirectInputEffectDriver* This) {
  272. return This->lpVtbl->Release(This);
  273. }
  274. /*** IDirectInputEffectDriver methods ***/
  275. static FORCEINLINE HRESULT IDirectInputEffectDriver_DeviceID(IDirectInputEffectDriver* This,DWORD a,DWORD b,DWORD c,DWORD d,LPVOID e) {
  276. return This->lpVtbl->DeviceID(This,a,b,c,d,e);
  277. }
  278. static FORCEINLINE HRESULT IDirectInputEffectDriver_GetVersions(IDirectInputEffectDriver* This,LPDIDRIVERVERSIONS a) {
  279. return This->lpVtbl->GetVersions(This,a);
  280. }
  281. static FORCEINLINE HRESULT IDirectInputEffectDriver_Escape(IDirectInputEffectDriver* This,DWORD a,DWORD b,LPDIEFFESCAPE c) {
  282. return This->lpVtbl->Escape(This,a,b,c);
  283. }
  284. static FORCEINLINE HRESULT IDirectInputEffectDriver_SetGain(IDirectInputEffectDriver* This,DWORD a,DWORD b) {
  285. return This->lpVtbl->SetGain(This,a,b);
  286. }
  287. static FORCEINLINE HRESULT IDirectInputEffectDriver_SendForceFeedbackCommand(IDirectInputEffectDriver* This,DWORD a,DWORD b) {
  288. return This->lpVtbl->SendForceFeedbackCommand(This,a,b);
  289. }
  290. static FORCEINLINE HRESULT IDirectInputEffectDriver_GetForceFeedbackState(IDirectInputEffectDriver* This,DWORD a,LPDIDEVICESTATE b) {
  291. return This->lpVtbl->GetForceFeedbackState(This,a,b);
  292. }
  293. static FORCEINLINE HRESULT IDirectInputEffectDriver_DownloadEffect(IDirectInputEffectDriver* This,DWORD a,DWORD b,LPDWORD c,LPCDIEFFECT d,DWORD e) {
  294. return This->lpVtbl->DownloadEffect(This,a,b,c,d,e);
  295. }
  296. static FORCEINLINE HRESULT IDirectInputEffectDriver_DestroyEffect(IDirectInputEffectDriver* This,DWORD a,DWORD b) {
  297. return This->lpVtbl->DestroyEffect(This,a,b);
  298. }
  299. static FORCEINLINE HRESULT IDirectInputEffectDriver_StartEffect(IDirectInputEffectDriver* This,DWORD a,DWORD b,DWORD c,DWORD d) {
  300. return This->lpVtbl->StartEffect(This,a,b,c,d);
  301. }
  302. static FORCEINLINE HRESULT IDirectInputEffectDriver_StopEffect(IDirectInputEffectDriver* This,DWORD a,DWORD b) {
  303. return This->lpVtbl->StopEffect(This,a,b);
  304. }
  305. static FORCEINLINE HRESULT IDirectInputEffectDriver_GetEffectStatus(IDirectInputEffectDriver* This,DWORD a,DWORD b,LPDWORD c) {
  306. return This->lpVtbl->GetEffectStatus(This,a,b,c);
  307. }
  308. #endif
  309. #endif
  310. #endif
  311. #endif /* __IDirectInputEffectDriver_INTERFACE_DEFINED__ */
  312. #endif /* DIJ_RINGZERO */
  313. #ifndef JOY_HW_NONE
  314. #define JOY_HW_NONE 0
  315. #define JOY_HW_CUSTOM 1
  316. #define JOY_HW_2A_2B_GENERIC 2
  317. #define JOY_HW_2A_4B_GENERIC 3
  318. #define JOY_HW_2B_GAMEPAD 4
  319. #define JOY_HW_2B_FLIGHTYOKE 5
  320. #define JOY_HW_2B_FLIGHTYOKETHROTTLE 6
  321. #define JOY_HW_3A_2B_GENERIC 7
  322. #define JOY_HW_3A_4B_GENERIC 8
  323. #define JOY_HW_4B_GAMEPAD 9
  324. #define JOY_HW_4B_FLIGHTYOKE 10
  325. #define JOY_HW_4B_FLIGHTYOKETHROTTLE 11
  326. #define JOY_HW_TWO_2A_2B_WITH_Y 12
  327. #define JOY_HW_LASTENTRY 13
  328. #define JOY_ISCAL_XY 0x00000001
  329. #define JOY_ISCAL_Z 0x00000002
  330. #define JOY_ISCAL_R 0x00000004
  331. #define JOY_ISCAL_U 0x00000008
  332. #define JOY_ISCAL_V 0x00000010
  333. #define JOY_ISCAL_POV 0x00000020
  334. #define JOY_POVVAL_FORWARD (0)
  335. #define JOY_POVVAL_BACKWARD (1)
  336. #define JOY_POVVAL_LEFT (2)
  337. #define JOY_POVVAL_RIGHT (3)
  338. #define JOY_POV_NUMDIRS (4)
  339. #define JOY_HWS_HASZ 0x00000001
  340. #define JOY_HWS_HASPOV 0x00000002
  341. #define JOY_HWS_POVISBUTTONCOMBOS 0x00000004
  342. #define JOY_HWS_POVISPOLL 0x00000008
  343. #define JOY_HWS_ISYOKE 0x00000010
  344. #define JOY_HWS_ISGAMEPAD 0x00000020
  345. #define JOY_HWS_ISCARCTRL 0x00000040
  346. #define JOY_HWS_XISJ1Y 0x00000080
  347. #define JOY_HWS_XISJ2X 0x00000100
  348. #define JOY_HWS_XISJ2Y 0x00000200
  349. #define JOY_HWS_YISJ1X 0x00000400
  350. #define JOY_HWS_YISJ2X 0x00000800
  351. #define JOY_HWS_YISJ2Y 0x00001000
  352. #define JOY_HWS_ZISJ1X 0x00002000
  353. #define JOY_HWS_ZISJ1Y 0x00004000
  354. #define JOY_HWS_ZISJ2X 0x00008000
  355. #define JOY_HWS_POVISJ1X 0x00010000
  356. #define JOY_HWS_POVISJ1Y 0x00020000
  357. #define JOY_HWS_POVISJ2X 0x00040000
  358. #define JOY_HWS_HASR 0x00080000
  359. #define JOY_HWS_RISJ1X 0x00100000
  360. #define JOY_HWS_RISJ1Y 0x00200000
  361. #define JOY_HWS_RISJ2Y 0x00400000
  362. #define JOY_HWS_HASU 0x00800000
  363. #define JOY_HWS_HASV 0x01000000
  364. #define JOY_US_HASRUDDER 0x00000001
  365. #define JOY_US_PRESENT 0x00000002
  366. #define JOY_US_ISOEM 0x00000004
  367. #define JOY_US_RESERVED 0x80000000
  368. #define JOYTYPE_ZEROGAMEENUMOEMDATA 0x00000001
  369. #define JOYTYPE_NOAUTODETECTGAMEPORT 0x00000002
  370. #define JOYTYPE_NOHIDDIRECT 0x00000004
  371. #define JOYTYPE_ANALOGCOMPAT 0x00000008
  372. #define JOYTYPE_DEFAULTPROPSHEET 0x80000000
  373. #define JOYTYPE_DEVICEHIDE 0x00010000
  374. #define JOYTYPE_MOUSEHIDE 0x00020000
  375. #define JOYTYPE_KEYBHIDE 0x00040000
  376. #define JOYTYPE_GAMEHIDE 0x00080000
  377. #define JOYTYPE_HIDEACTIVE 0x00100000
  378. #define JOYTYPE_INFOMASK 0x00E00000
  379. #define JOYTYPE_INFODEFAULT 0x00000000
  380. #define JOYTYPE_INFOYYPEDALS 0x00200000
  381. #define JOYTYPE_INFOZYPEDALS 0x00400000
  382. #define JOYTYPE_INFOYRPEDALS 0x00600000
  383. #define JOYTYPE_INFOZRPEDALS 0x00800000
  384. #define JOYTYPE_INFOZISSLIDER 0x00200000
  385. #define JOYTYPE_INFOZISZ 0x00400000
  386. #define JOYTYPE_ENABLEINPUTREPORT 0x01000000
  387. typedef struct joypos_tag {
  388. DWORD dwX;
  389. DWORD dwY;
  390. DWORD dwZ;
  391. DWORD dwR;
  392. DWORD dwU;
  393. DWORD dwV;
  394. } JOYPOS;
  395. typedef struct joypos_tag *LPJOYPOS;
  396. typedef struct joyrange_tag {
  397. JOYPOS jpMin;
  398. JOYPOS jpMax;
  399. JOYPOS jpCenter;
  400. } JOYRANGE;
  401. typedef struct joyrange_tag *LPJOYRANGE;
  402. typedef struct joyreguservalues_tag {
  403. DWORD dwTimeOut;
  404. JOYRANGE jrvRanges;
  405. JOYPOS jpDeadZone;
  406. } JOYREGUSERVALUES;
  407. typedef struct joyreguservalues_tag *LPJOYREGUSERVALUES;
  408. typedef struct joyreghwsettings_tag {
  409. DWORD dwFlags;
  410. DWORD dwNumButtons;
  411. } JOYREGHWSETTINGS;
  412. typedef struct joyreghwsettings_tag *LPJOYHWSETTINGS;
  413. typedef struct joyreghwvalues_tag {
  414. JOYRANGE jrvHardware;
  415. DWORD dwPOVValues[4];
  416. DWORD dwCalFlags;
  417. } JOYREGHWVALUES;
  418. typedef struct joyreghwvalues_tag *LPJOYREGHWVALUES;
  419. typedef struct joyreghwconfig_tag {
  420. JOYREGHWSETTINGS hws;
  421. DWORD dwUsageSettings;
  422. JOYREGHWVALUES hwv;
  423. DWORD dwType;
  424. DWORD dwReserved;
  425. } JOYREGHWCONFIG;
  426. typedef struct joyreghwconfig_tag *LPJOYREGHWCONFIG;
  427. typedef struct joycalibrate_tag {
  428. UINT wXbase;
  429. UINT wXdelta;
  430. UINT wYbase;
  431. UINT wYdelta;
  432. UINT wZbase;
  433. UINT wZdelta;
  434. } JOYCALIBRATE;
  435. typedef struct joycalibrate_tag *LPJOYCALIBRATE;
  436. #endif /* JOY_HW_NONE */
  437. #ifndef DIJ_RINGZERO
  438. #define MAX_JOYSTRING (256)
  439. typedef WINBOOL (WINAPI *LPDIJOYTYPECALLBACK)(LPCWSTR, LPVOID);
  440. #if 0
  441. #define MAX_JOYSTICKOEMVXDNAME (260)
  442. #endif
  443. #ifndef MAX_JOYSTICKOEMVXDNAME
  444. #define MAX_JOYSTICKOEMVXDNAME 260
  445. #endif
  446. #define DITC_REGHWSETTINGS 0x00000001
  447. #define DITC_CLSIDCONFIG 0x00000002
  448. #define DITC_DISPLAYNAME 0x00000004
  449. #define DITC_CALLOUT 0x00000008
  450. #define DITC_HARDWAREID 0x00000010
  451. #define DITC_FLAGS1 0x00000020
  452. #define DITC_FLAGS2 0x00000040
  453. #define DITC_MAPFILE 0x00000080
  454. typedef struct DIJOYTYPEINFO_DX5 {
  455. DWORD dwSize;
  456. JOYREGHWSETTINGS hws;
  457. CLSID clsidConfig;
  458. WCHAR wszDisplayName[256];
  459. WCHAR wszCallout[260];
  460. } DIJOYTYPEINFO_DX5;
  461. typedef struct DIJOYTYPEINFO_DX5 *LPDIJOYTYPEINFO_DX5;
  462. typedef const DIJOYTYPEINFO_DX5 *LPCDIJOYTYPEINFO_DX5;
  463. typedef struct DIJOYTYPEINFO_DX6 {
  464. DWORD dwSize;
  465. JOYREGHWSETTINGS hws;
  466. CLSID clsidConfig;
  467. WCHAR wszDisplayName[256];
  468. WCHAR wszCallout[260];
  469. WCHAR wszHardwareId[256];
  470. DWORD dwFlags1;
  471. } DIJOYTYPEINFO_DX6;
  472. typedef struct DIJOYTYPEINFO_DX6 *LPDIJOYTYPEINFO_DX6;
  473. typedef const DIJOYTYPEINFO_DX6 *LPCDIJOYTYPEINFO_DX6;
  474. typedef struct DIJOYTYPEINFO {
  475. DWORD dwSize;
  476. JOYREGHWSETTINGS hws;
  477. CLSID clsidConfig;
  478. WCHAR wszDisplayName[256];
  479. WCHAR wszCallout[260];
  480. WCHAR wszHardwareId[256];
  481. DWORD dwFlags1;
  482. DWORD dwFlags2;
  483. WCHAR wszMapFile[256];
  484. } DIJOYTYPEINFO;
  485. typedef struct DIJOYTYPEINFO *LPDIJOYTYPEINFO;
  486. typedef const DIJOYTYPEINFO *LPCDIJOYTYPEINFO;
  487. #define DIJC_GUIDINSTANCE 0x00000001
  488. #define DIJC_REGHWCONFIGTYPE 0x00000002
  489. #define DIJC_GAIN 0x00000004
  490. #define DIJC_CALLOUT 0x00000008
  491. #define DIJC_WDMGAMEPORT 0x00000010
  492. typedef struct DIJOYCONFIG_DX5 {
  493. DWORD dwSize;
  494. GUID guidInstance;
  495. JOYREGHWCONFIG hwc;
  496. DWORD dwGain;
  497. WCHAR wszType[256];
  498. WCHAR wszCallout[256];
  499. } DIJOYCONFIG_DX5;
  500. typedef struct DIJOYCONFIG_DX5 *LPDIJOYCONFIG_DX5;
  501. typedef const DIJOYCONFIG_DX5 *LPCDIJOYCONFIG_DX5;
  502. typedef struct DIJOYCONFIG {
  503. DWORD dwSize;
  504. GUID guidInstance;
  505. JOYREGHWCONFIG hwc;
  506. DWORD dwGain;
  507. WCHAR wszType[256];
  508. WCHAR wszCallout[256];
  509. GUID guidGameport;
  510. } DIJOYCONFIG;
  511. typedef struct DIJOYCONFIG *LPDIJOYCONFIG;
  512. typedef const DIJOYCONFIG *LPCDIJOYCONFIG;
  513. #define DIJU_USERVALUES 0x00000001
  514. #define DIJU_GLOBALDRIVER 0x00000002
  515. #define DIJU_GAMEPORTEMULATOR 0x00000004
  516. typedef struct DIJOYUSERVALUES {
  517. DWORD dwSize;
  518. JOYREGUSERVALUES ruv;
  519. WCHAR wszGlobalDriver[256];
  520. WCHAR wszGameportEmulator[256];
  521. } DIJOYUSERVALUES;
  522. typedef struct DIJOYUSERVALUES *LPDIJOYUSERVALUES;
  523. typedef const DIJOYUSERVALUES *LPCDIJOYUSERVALUES;
  524. DEFINE_GUID(GUID_KeyboardClass, 0x4d36e96b,0xe325,0x11ce,0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18);
  525. DEFINE_GUID(GUID_MediaClass, 0x4d36e96c,0xe325,0x11ce,0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18);
  526. DEFINE_GUID(GUID_MouseClass, 0x4d36e96f,0xe325,0x11ce,0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18);
  527. DEFINE_GUID(GUID_HIDClass, 0x745a17a0,0x74d3,0x11d0,0xb6,0xfe,0x00,0xa0,0xc9,0x0f,0x57,0xda);
  528. /*****************************************************************************
  529. * IDirectInputJoyConfig interface
  530. */
  531. #ifndef __IDirectInputJoyConfig_INTERFACE_DEFINED__
  532. #define __IDirectInputJoyConfig_INTERFACE_DEFINED__
  533. DEFINE_GUID(IID_IDirectInputJoyConfig, 0x1de12ab1, 0xc9f5, 0x11cf, 0xbf,0xc7, 0x44,0x45,0x53,0x54,0x00,0x00);
  534. #if defined(__cplusplus) && !defined(CINTERFACE)
  535. MIDL_INTERFACE("1de12ab1-c9f5-11cf-bfc7-444553540000")
  536. IDirectInputJoyConfig : public IUnknown
  537. {
  538. virtual HRESULT STDMETHODCALLTYPE Acquire(
  539. ) = 0;
  540. virtual HRESULT STDMETHODCALLTYPE Unacquire(
  541. ) = 0;
  542. virtual HRESULT STDMETHODCALLTYPE SetCooperativeLevel(
  543. HWND a,
  544. DWORD b) = 0;
  545. virtual HRESULT STDMETHODCALLTYPE SendNotify(
  546. ) = 0;
  547. virtual HRESULT STDMETHODCALLTYPE EnumTypes(
  548. LPVOID a,
  549. LPVOID b) = 0;
  550. virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
  551. LPCWSTR a,
  552. LPDIJOYTYPEINFO b,
  553. DWORD c) = 0;
  554. virtual HRESULT STDMETHODCALLTYPE SetTypeInfo(
  555. LPCWSTR a,
  556. LPCDIJOYTYPEINFO b,
  557. DWORD c) = 0;
  558. virtual HRESULT STDMETHODCALLTYPE DeleteType(
  559. LPCWSTR a) = 0;
  560. virtual HRESULT STDMETHODCALLTYPE GetConfig(
  561. UINT a,
  562. LPDIJOYCONFIG b,
  563. DWORD c) = 0;
  564. virtual HRESULT STDMETHODCALLTYPE SetConfig(
  565. UINT a,
  566. LPCDIJOYCONFIG b,
  567. DWORD c) = 0;
  568. virtual HRESULT STDMETHODCALLTYPE DeleteConfig(
  569. UINT a) = 0;
  570. virtual HRESULT STDMETHODCALLTYPE GetUserValues(
  571. LPDIJOYUSERVALUES a,
  572. DWORD b) = 0;
  573. virtual HRESULT STDMETHODCALLTYPE SetUserValues(
  574. LPCDIJOYUSERVALUES a,
  575. DWORD b) = 0;
  576. virtual HRESULT STDMETHODCALLTYPE AddNewHardware(
  577. HWND a,
  578. REFGUID b) = 0;
  579. virtual HRESULT STDMETHODCALLTYPE OpenTypeKey(
  580. LPCWSTR a,
  581. DWORD b,
  582. HKEY *c) = 0;
  583. virtual HRESULT STDMETHODCALLTYPE OpenConfigKey(
  584. UINT a,
  585. DWORD b,
  586. HKEY *c) = 0;
  587. };
  588. #ifdef __CRT_UUID_DECL
  589. __CRT_UUID_DECL(IDirectInputJoyConfig, 0x1de12ab1, 0xc9f5, 0x11cf, 0xbf,0xc7, 0x44,0x45,0x53,0x54,0x00,0x00)
  590. #endif
  591. #else
  592. typedef struct IDirectInputJoyConfigVtbl {
  593. BEGIN_INTERFACE
  594. /*** IUnknown methods ***/
  595. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  596. IDirectInputJoyConfig *This,
  597. REFIID riid,
  598. void **ppvObject);
  599. ULONG (STDMETHODCALLTYPE *AddRef)(
  600. IDirectInputJoyConfig *This);
  601. ULONG (STDMETHODCALLTYPE *Release)(
  602. IDirectInputJoyConfig *This);
  603. /*** IDirectInputJoyConfig methods ***/
  604. HRESULT (STDMETHODCALLTYPE *Acquire)(
  605. IDirectInputJoyConfig *This);
  606. HRESULT (STDMETHODCALLTYPE *Unacquire)(
  607. IDirectInputJoyConfig *This);
  608. HRESULT (STDMETHODCALLTYPE *SetCooperativeLevel)(
  609. IDirectInputJoyConfig *This,
  610. HWND a,
  611. DWORD b);
  612. HRESULT (STDMETHODCALLTYPE *SendNotify)(
  613. IDirectInputJoyConfig *This);
  614. HRESULT (STDMETHODCALLTYPE *EnumTypes)(
  615. IDirectInputJoyConfig *This,
  616. LPVOID a,
  617. LPVOID b);
  618. HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  619. IDirectInputJoyConfig *This,
  620. LPCWSTR a,
  621. LPDIJOYTYPEINFO b,
  622. DWORD c);
  623. HRESULT (STDMETHODCALLTYPE *SetTypeInfo)(
  624. IDirectInputJoyConfig *This,
  625. LPCWSTR a,
  626. LPCDIJOYTYPEINFO b,
  627. DWORD c);
  628. HRESULT (STDMETHODCALLTYPE *DeleteType)(
  629. IDirectInputJoyConfig *This,
  630. LPCWSTR a);
  631. HRESULT (STDMETHODCALLTYPE *GetConfig)(
  632. IDirectInputJoyConfig *This,
  633. UINT a,
  634. LPDIJOYCONFIG b,
  635. DWORD c);
  636. HRESULT (STDMETHODCALLTYPE *SetConfig)(
  637. IDirectInputJoyConfig *This,
  638. UINT a,
  639. LPCDIJOYCONFIG b,
  640. DWORD c);
  641. HRESULT (STDMETHODCALLTYPE *DeleteConfig)(
  642. IDirectInputJoyConfig *This,
  643. UINT a);
  644. HRESULT (STDMETHODCALLTYPE *GetUserValues)(
  645. IDirectInputJoyConfig *This,
  646. LPDIJOYUSERVALUES a,
  647. DWORD b);
  648. HRESULT (STDMETHODCALLTYPE *SetUserValues)(
  649. IDirectInputJoyConfig *This,
  650. LPCDIJOYUSERVALUES a,
  651. DWORD b);
  652. HRESULT (STDMETHODCALLTYPE *AddNewHardware)(
  653. IDirectInputJoyConfig *This,
  654. HWND a,
  655. REFGUID b);
  656. HRESULT (STDMETHODCALLTYPE *OpenTypeKey)(
  657. IDirectInputJoyConfig *This,
  658. LPCWSTR a,
  659. DWORD b,
  660. HKEY *c);
  661. HRESULT (STDMETHODCALLTYPE *OpenConfigKey)(
  662. IDirectInputJoyConfig *This,
  663. UINT a,
  664. DWORD b,
  665. HKEY *c);
  666. END_INTERFACE
  667. } IDirectInputJoyConfigVtbl;
  668. interface IDirectInputJoyConfig {
  669. CONST_VTBL IDirectInputJoyConfigVtbl* lpVtbl;
  670. };
  671. #ifdef COBJMACROS
  672. #ifndef WIDL_C_INLINE_WRAPPERS
  673. /*** IUnknown methods ***/
  674. #define IDirectInputJoyConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  675. #define IDirectInputJoyConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
  676. #define IDirectInputJoyConfig_Release(This) (This)->lpVtbl->Release(This)
  677. /*** IDirectInputJoyConfig methods ***/
  678. #define IDirectInputJoyConfig_Acquire(This) (This)->lpVtbl->Acquire(This)
  679. #define IDirectInputJoyConfig_Unacquire(This) (This)->lpVtbl->Unacquire(This)
  680. #define IDirectInputJoyConfig_SetCooperativeLevel(This,a,b) (This)->lpVtbl->SetCooperativeLevel(This,a,b)
  681. #define IDirectInputJoyConfig_SendNotify(This) (This)->lpVtbl->SendNotify(This)
  682. #define IDirectInputJoyConfig_EnumTypes(This,a,b) (This)->lpVtbl->EnumTypes(This,a,b)
  683. #define IDirectInputJoyConfig_GetTypeInfo(This,a,b,c) (This)->lpVtbl->GetTypeInfo(This,a,b,c)
  684. #define IDirectInputJoyConfig_SetTypeInfo(This,a,b,c) (This)->lpVtbl->SetTypeInfo(This,a,b,c)
  685. #define IDirectInputJoyConfig_DeleteType(This,a) (This)->lpVtbl->DeleteType(This,a)
  686. #define IDirectInputJoyConfig_GetConfig(This,a,b,c) (This)->lpVtbl->GetConfig(This,a,b,c)
  687. #define IDirectInputJoyConfig_SetConfig(This,a,b,c) (This)->lpVtbl->SetConfig(This,a,b,c)
  688. #define IDirectInputJoyConfig_DeleteConfig(This,a) (This)->lpVtbl->DeleteConfig(This,a)
  689. #define IDirectInputJoyConfig_GetUserValues(This,a,b) (This)->lpVtbl->GetUserValues(This,a,b)
  690. #define IDirectInputJoyConfig_SetUserValues(This,a,b) (This)->lpVtbl->SetUserValues(This,a,b)
  691. #define IDirectInputJoyConfig_AddNewHardware(This,a,b) (This)->lpVtbl->AddNewHardware(This,a,b)
  692. #define IDirectInputJoyConfig_OpenTypeKey(This,a,b,c) (This)->lpVtbl->OpenTypeKey(This,a,b,c)
  693. #define IDirectInputJoyConfig_OpenConfigKey(This,a,b,c) (This)->lpVtbl->OpenConfigKey(This,a,b,c)
  694. #else
  695. /*** IUnknown methods ***/
  696. static FORCEINLINE HRESULT IDirectInputJoyConfig_QueryInterface(IDirectInputJoyConfig* This,REFIID riid,void **ppvObject) {
  697. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  698. }
  699. static FORCEINLINE ULONG IDirectInputJoyConfig_AddRef(IDirectInputJoyConfig* This) {
  700. return This->lpVtbl->AddRef(This);
  701. }
  702. static FORCEINLINE ULONG IDirectInputJoyConfig_Release(IDirectInputJoyConfig* This) {
  703. return This->lpVtbl->Release(This);
  704. }
  705. /*** IDirectInputJoyConfig methods ***/
  706. static FORCEINLINE HRESULT IDirectInputJoyConfig_Acquire(IDirectInputJoyConfig* This) {
  707. return This->lpVtbl->Acquire(This);
  708. }
  709. static FORCEINLINE HRESULT IDirectInputJoyConfig_Unacquire(IDirectInputJoyConfig* This) {
  710. return This->lpVtbl->Unacquire(This);
  711. }
  712. static FORCEINLINE HRESULT IDirectInputJoyConfig_SetCooperativeLevel(IDirectInputJoyConfig* This,HWND a,DWORD b) {
  713. return This->lpVtbl->SetCooperativeLevel(This,a,b);
  714. }
  715. static FORCEINLINE HRESULT IDirectInputJoyConfig_SendNotify(IDirectInputJoyConfig* This) {
  716. return This->lpVtbl->SendNotify(This);
  717. }
  718. static FORCEINLINE HRESULT IDirectInputJoyConfig_EnumTypes(IDirectInputJoyConfig* This,LPVOID a,LPVOID b) {
  719. return This->lpVtbl->EnumTypes(This,a,b);
  720. }
  721. static FORCEINLINE HRESULT IDirectInputJoyConfig_GetTypeInfo(IDirectInputJoyConfig* This,LPCWSTR a,LPDIJOYTYPEINFO b,DWORD c) {
  722. return This->lpVtbl->GetTypeInfo(This,a,b,c);
  723. }
  724. static FORCEINLINE HRESULT IDirectInputJoyConfig_SetTypeInfo(IDirectInputJoyConfig* This,LPCWSTR a,LPCDIJOYTYPEINFO b,DWORD c) {
  725. return This->lpVtbl->SetTypeInfo(This,a,b,c);
  726. }
  727. static FORCEINLINE HRESULT IDirectInputJoyConfig_DeleteType(IDirectInputJoyConfig* This,LPCWSTR a) {
  728. return This->lpVtbl->DeleteType(This,a);
  729. }
  730. static FORCEINLINE HRESULT IDirectInputJoyConfig_GetConfig(IDirectInputJoyConfig* This,UINT a,LPDIJOYCONFIG b,DWORD c) {
  731. return This->lpVtbl->GetConfig(This,a,b,c);
  732. }
  733. static FORCEINLINE HRESULT IDirectInputJoyConfig_SetConfig(IDirectInputJoyConfig* This,UINT a,LPCDIJOYCONFIG b,DWORD c) {
  734. return This->lpVtbl->SetConfig(This,a,b,c);
  735. }
  736. static FORCEINLINE HRESULT IDirectInputJoyConfig_DeleteConfig(IDirectInputJoyConfig* This,UINT a) {
  737. return This->lpVtbl->DeleteConfig(This,a);
  738. }
  739. static FORCEINLINE HRESULT IDirectInputJoyConfig_GetUserValues(IDirectInputJoyConfig* This,LPDIJOYUSERVALUES a,DWORD b) {
  740. return This->lpVtbl->GetUserValues(This,a,b);
  741. }
  742. static FORCEINLINE HRESULT IDirectInputJoyConfig_SetUserValues(IDirectInputJoyConfig* This,LPCDIJOYUSERVALUES a,DWORD b) {
  743. return This->lpVtbl->SetUserValues(This,a,b);
  744. }
  745. static FORCEINLINE HRESULT IDirectInputJoyConfig_AddNewHardware(IDirectInputJoyConfig* This,HWND a,REFGUID b) {
  746. return This->lpVtbl->AddNewHardware(This,a,b);
  747. }
  748. static FORCEINLINE HRESULT IDirectInputJoyConfig_OpenTypeKey(IDirectInputJoyConfig* This,LPCWSTR a,DWORD b,HKEY *c) {
  749. return This->lpVtbl->OpenTypeKey(This,a,b,c);
  750. }
  751. static FORCEINLINE HRESULT IDirectInputJoyConfig_OpenConfigKey(IDirectInputJoyConfig* This,UINT a,DWORD b,HKEY *c) {
  752. return This->lpVtbl->OpenConfigKey(This,a,b,c);
  753. }
  754. #endif
  755. #endif
  756. #endif
  757. #endif /* __IDirectInputJoyConfig_INTERFACE_DEFINED__ */
  758. /*****************************************************************************
  759. * IDirectInputJoyConfig8 interface
  760. */
  761. #ifndef __IDirectInputJoyConfig8_INTERFACE_DEFINED__
  762. #define __IDirectInputJoyConfig8_INTERFACE_DEFINED__
  763. DEFINE_GUID(IID_IDirectInputJoyConfig8, 0xeb0d7dfa, 0x1990, 0x4f27, 0xb4,0xd6, 0xed,0xf2,0xee,0xc4,0xa4,0x4c);
  764. #if defined(__cplusplus) && !defined(CINTERFACE)
  765. MIDL_INTERFACE("eb0d7dfa-1990-4f27-b4d6-edf2eec4a44c")
  766. IDirectInputJoyConfig8 : public IUnknown
  767. {
  768. virtual HRESULT STDMETHODCALLTYPE Acquire(
  769. ) = 0;
  770. virtual HRESULT STDMETHODCALLTYPE Unacquire(
  771. ) = 0;
  772. virtual HRESULT STDMETHODCALLTYPE SetCooperativeLevel(
  773. HWND a,
  774. DWORD b) = 0;
  775. virtual HRESULT STDMETHODCALLTYPE SendNotify(
  776. ) = 0;
  777. virtual HRESULT STDMETHODCALLTYPE EnumTypes(
  778. LPVOID a,
  779. LPVOID b) = 0;
  780. virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
  781. LPCWSTR a,
  782. LPDIJOYTYPEINFO b,
  783. DWORD c) = 0;
  784. virtual HRESULT STDMETHODCALLTYPE SetTypeInfo(
  785. LPCWSTR a,
  786. LPCDIJOYTYPEINFO b,
  787. DWORD c,
  788. LPWSTR d) = 0;
  789. virtual HRESULT STDMETHODCALLTYPE DeleteType(
  790. LPCWSTR a) = 0;
  791. virtual HRESULT STDMETHODCALLTYPE GetConfig(
  792. UINT a,
  793. LPDIJOYCONFIG b,
  794. DWORD c) = 0;
  795. virtual HRESULT STDMETHODCALLTYPE SetConfig(
  796. UINT a,
  797. LPCDIJOYCONFIG b,
  798. DWORD c) = 0;
  799. virtual HRESULT STDMETHODCALLTYPE DeleteConfig(
  800. UINT a) = 0;
  801. virtual HRESULT STDMETHODCALLTYPE GetUserValues(
  802. LPDIJOYUSERVALUES a,
  803. DWORD b) = 0;
  804. virtual HRESULT STDMETHODCALLTYPE SetUserValues(
  805. LPCDIJOYUSERVALUES a,
  806. DWORD b) = 0;
  807. virtual HRESULT STDMETHODCALLTYPE AddNewHardware(
  808. HWND a,
  809. REFGUID b) = 0;
  810. virtual HRESULT STDMETHODCALLTYPE OpenTypeKey(
  811. LPCWSTR a,
  812. DWORD b,
  813. HKEY *c) = 0;
  814. virtual HRESULT STDMETHODCALLTYPE OpenAppStatusKey(
  815. HKEY *a) = 0;
  816. };
  817. #ifdef __CRT_UUID_DECL
  818. __CRT_UUID_DECL(IDirectInputJoyConfig8, 0xeb0d7dfa, 0x1990, 0x4f27, 0xb4,0xd6, 0xed,0xf2,0xee,0xc4,0xa4,0x4c)
  819. #endif
  820. #else
  821. typedef struct IDirectInputJoyConfig8Vtbl {
  822. BEGIN_INTERFACE
  823. /*** IUnknown methods ***/
  824. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  825. IDirectInputJoyConfig8 *This,
  826. REFIID riid,
  827. void **ppvObject);
  828. ULONG (STDMETHODCALLTYPE *AddRef)(
  829. IDirectInputJoyConfig8 *This);
  830. ULONG (STDMETHODCALLTYPE *Release)(
  831. IDirectInputJoyConfig8 *This);
  832. /*** IDirectInputJoyConfig8 methods ***/
  833. HRESULT (STDMETHODCALLTYPE *Acquire)(
  834. IDirectInputJoyConfig8 *This);
  835. HRESULT (STDMETHODCALLTYPE *Unacquire)(
  836. IDirectInputJoyConfig8 *This);
  837. HRESULT (STDMETHODCALLTYPE *SetCooperativeLevel)(
  838. IDirectInputJoyConfig8 *This,
  839. HWND a,
  840. DWORD b);
  841. HRESULT (STDMETHODCALLTYPE *SendNotify)(
  842. IDirectInputJoyConfig8 *This);
  843. HRESULT (STDMETHODCALLTYPE *EnumTypes)(
  844. IDirectInputJoyConfig8 *This,
  845. LPVOID a,
  846. LPVOID b);
  847. HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
  848. IDirectInputJoyConfig8 *This,
  849. LPCWSTR a,
  850. LPDIJOYTYPEINFO b,
  851. DWORD c);
  852. HRESULT (STDMETHODCALLTYPE *SetTypeInfo)(
  853. IDirectInputJoyConfig8 *This,
  854. LPCWSTR a,
  855. LPCDIJOYTYPEINFO b,
  856. DWORD c,
  857. LPWSTR d);
  858. HRESULT (STDMETHODCALLTYPE *DeleteType)(
  859. IDirectInputJoyConfig8 *This,
  860. LPCWSTR a);
  861. HRESULT (STDMETHODCALLTYPE *GetConfig)(
  862. IDirectInputJoyConfig8 *This,
  863. UINT a,
  864. LPDIJOYCONFIG b,
  865. DWORD c);
  866. HRESULT (STDMETHODCALLTYPE *SetConfig)(
  867. IDirectInputJoyConfig8 *This,
  868. UINT a,
  869. LPCDIJOYCONFIG b,
  870. DWORD c);
  871. HRESULT (STDMETHODCALLTYPE *DeleteConfig)(
  872. IDirectInputJoyConfig8 *This,
  873. UINT a);
  874. HRESULT (STDMETHODCALLTYPE *GetUserValues)(
  875. IDirectInputJoyConfig8 *This,
  876. LPDIJOYUSERVALUES a,
  877. DWORD b);
  878. HRESULT (STDMETHODCALLTYPE *SetUserValues)(
  879. IDirectInputJoyConfig8 *This,
  880. LPCDIJOYUSERVALUES a,
  881. DWORD b);
  882. HRESULT (STDMETHODCALLTYPE *AddNewHardware)(
  883. IDirectInputJoyConfig8 *This,
  884. HWND a,
  885. REFGUID b);
  886. HRESULT (STDMETHODCALLTYPE *OpenTypeKey)(
  887. IDirectInputJoyConfig8 *This,
  888. LPCWSTR a,
  889. DWORD b,
  890. HKEY *c);
  891. HRESULT (STDMETHODCALLTYPE *OpenAppStatusKey)(
  892. IDirectInputJoyConfig8 *This,
  893. HKEY *a);
  894. END_INTERFACE
  895. } IDirectInputJoyConfig8Vtbl;
  896. interface IDirectInputJoyConfig8 {
  897. CONST_VTBL IDirectInputJoyConfig8Vtbl* lpVtbl;
  898. };
  899. #ifdef COBJMACROS
  900. #ifndef WIDL_C_INLINE_WRAPPERS
  901. /*** IUnknown methods ***/
  902. #define IDirectInputJoyConfig8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  903. #define IDirectInputJoyConfig8_AddRef(This) (This)->lpVtbl->AddRef(This)
  904. #define IDirectInputJoyConfig8_Release(This) (This)->lpVtbl->Release(This)
  905. /*** IDirectInputJoyConfig8 methods ***/
  906. #define IDirectInputJoyConfig8_Acquire(This) (This)->lpVtbl->Acquire(This)
  907. #define IDirectInputJoyConfig8_Unacquire(This) (This)->lpVtbl->Unacquire(This)
  908. #define IDirectInputJoyConfig8_SetCooperativeLevel(This,a,b) (This)->lpVtbl->SetCooperativeLevel(This,a,b)
  909. #define IDirectInputJoyConfig8_SendNotify(This) (This)->lpVtbl->SendNotify(This)
  910. #define IDirectInputJoyConfig8_EnumTypes(This,a,b) (This)->lpVtbl->EnumTypes(This,a,b)
  911. #define IDirectInputJoyConfig8_GetTypeInfo(This,a,b,c) (This)->lpVtbl->GetTypeInfo(This,a,b,c)
  912. #define IDirectInputJoyConfig8_SetTypeInfo(This,a,b,c,d) (This)->lpVtbl->SetTypeInfo(This,a,b,c,d)
  913. #define IDirectInputJoyConfig8_DeleteType(This,a) (This)->lpVtbl->DeleteType(This,a)
  914. #define IDirectInputJoyConfig8_GetConfig(This,a,b,c) (This)->lpVtbl->GetConfig(This,a,b,c)
  915. #define IDirectInputJoyConfig8_SetConfig(This,a,b,c) (This)->lpVtbl->SetConfig(This,a,b,c)
  916. #define IDirectInputJoyConfig8_DeleteConfig(This,a) (This)->lpVtbl->DeleteConfig(This,a)
  917. #define IDirectInputJoyConfig8_GetUserValues(This,a,b) (This)->lpVtbl->GetUserValues(This,a,b)
  918. #define IDirectInputJoyConfig8_SetUserValues(This,a,b) (This)->lpVtbl->SetUserValues(This,a,b)
  919. #define IDirectInputJoyConfig8_AddNewHardware(This,a,b) (This)->lpVtbl->AddNewHardware(This,a,b)
  920. #define IDirectInputJoyConfig8_OpenTypeKey(This,a,b,c) (This)->lpVtbl->OpenTypeKey(This,a,b,c)
  921. #define IDirectInputJoyConfig8_OpenAppStatusKey(This,a) (This)->lpVtbl->OpenAppStatusKey(This,a)
  922. #else
  923. /*** IUnknown methods ***/
  924. static FORCEINLINE HRESULT IDirectInputJoyConfig8_QueryInterface(IDirectInputJoyConfig8* This,REFIID riid,void **ppvObject) {
  925. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  926. }
  927. static FORCEINLINE ULONG IDirectInputJoyConfig8_AddRef(IDirectInputJoyConfig8* This) {
  928. return This->lpVtbl->AddRef(This);
  929. }
  930. static FORCEINLINE ULONG IDirectInputJoyConfig8_Release(IDirectInputJoyConfig8* This) {
  931. return This->lpVtbl->Release(This);
  932. }
  933. /*** IDirectInputJoyConfig8 methods ***/
  934. static FORCEINLINE HRESULT IDirectInputJoyConfig8_Acquire(IDirectInputJoyConfig8* This) {
  935. return This->lpVtbl->Acquire(This);
  936. }
  937. static FORCEINLINE HRESULT IDirectInputJoyConfig8_Unacquire(IDirectInputJoyConfig8* This) {
  938. return This->lpVtbl->Unacquire(This);
  939. }
  940. static FORCEINLINE HRESULT IDirectInputJoyConfig8_SetCooperativeLevel(IDirectInputJoyConfig8* This,HWND a,DWORD b) {
  941. return This->lpVtbl->SetCooperativeLevel(This,a,b);
  942. }
  943. static FORCEINLINE HRESULT IDirectInputJoyConfig8_SendNotify(IDirectInputJoyConfig8* This) {
  944. return This->lpVtbl->SendNotify(This);
  945. }
  946. static FORCEINLINE HRESULT IDirectInputJoyConfig8_EnumTypes(IDirectInputJoyConfig8* This,LPVOID a,LPVOID b) {
  947. return This->lpVtbl->EnumTypes(This,a,b);
  948. }
  949. static FORCEINLINE HRESULT IDirectInputJoyConfig8_GetTypeInfo(IDirectInputJoyConfig8* This,LPCWSTR a,LPDIJOYTYPEINFO b,DWORD c) {
  950. return This->lpVtbl->GetTypeInfo(This,a,b,c);
  951. }
  952. static FORCEINLINE HRESULT IDirectInputJoyConfig8_SetTypeInfo(IDirectInputJoyConfig8* This,LPCWSTR a,LPCDIJOYTYPEINFO b,DWORD c,LPWSTR d) {
  953. return This->lpVtbl->SetTypeInfo(This,a,b,c,d);
  954. }
  955. static FORCEINLINE HRESULT IDirectInputJoyConfig8_DeleteType(IDirectInputJoyConfig8* This,LPCWSTR a) {
  956. return This->lpVtbl->DeleteType(This,a);
  957. }
  958. static FORCEINLINE HRESULT IDirectInputJoyConfig8_GetConfig(IDirectInputJoyConfig8* This,UINT a,LPDIJOYCONFIG b,DWORD c) {
  959. return This->lpVtbl->GetConfig(This,a,b,c);
  960. }
  961. static FORCEINLINE HRESULT IDirectInputJoyConfig8_SetConfig(IDirectInputJoyConfig8* This,UINT a,LPCDIJOYCONFIG b,DWORD c) {
  962. return This->lpVtbl->SetConfig(This,a,b,c);
  963. }
  964. static FORCEINLINE HRESULT IDirectInputJoyConfig8_DeleteConfig(IDirectInputJoyConfig8* This,UINT a) {
  965. return This->lpVtbl->DeleteConfig(This,a);
  966. }
  967. static FORCEINLINE HRESULT IDirectInputJoyConfig8_GetUserValues(IDirectInputJoyConfig8* This,LPDIJOYUSERVALUES a,DWORD b) {
  968. return This->lpVtbl->GetUserValues(This,a,b);
  969. }
  970. static FORCEINLINE HRESULT IDirectInputJoyConfig8_SetUserValues(IDirectInputJoyConfig8* This,LPCDIJOYUSERVALUES a,DWORD b) {
  971. return This->lpVtbl->SetUserValues(This,a,b);
  972. }
  973. static FORCEINLINE HRESULT IDirectInputJoyConfig8_AddNewHardware(IDirectInputJoyConfig8* This,HWND a,REFGUID b) {
  974. return This->lpVtbl->AddNewHardware(This,a,b);
  975. }
  976. static FORCEINLINE HRESULT IDirectInputJoyConfig8_OpenTypeKey(IDirectInputJoyConfig8* This,LPCWSTR a,DWORD b,HKEY *c) {
  977. return This->lpVtbl->OpenTypeKey(This,a,b,c);
  978. }
  979. static FORCEINLINE HRESULT IDirectInputJoyConfig8_OpenAppStatusKey(IDirectInputJoyConfig8* This,HKEY *a) {
  980. return This->lpVtbl->OpenAppStatusKey(This,a);
  981. }
  982. #endif
  983. #endif
  984. #endif
  985. #endif /* __IDirectInputJoyConfig8_INTERFACE_DEFINED__ */
  986. #endif /* DIJ_RINGZERO */
  987. #define DIRECTINPUT_NOTIFICATION_MSGSTRINGA "DIRECTINPUT_NOTIFICATION_MSGSTRING"
  988. #define DIRECTINPUT_NOTIFICATION_MSGSTRINGW L"DIRECTINPUT_NOTIFICATION_MSGSTRING"
  989. #define DIRECTINPUT_NOTIFICATION_MSGSTRING __MINGW_NAME_AW(DIRECTINPUT_NOTIFICATION_MSGSTRING)
  990. #define DIMSGWP_NEWAPPSTART 0x00000001
  991. #define DIMSGWP_DX8APPSTART 0x00000002
  992. #define DIMSGWP_DX8MAPPERAPPSTART 0x00000003
  993. #define DIAPPIDFLAG_NOTIME 0x00000001
  994. #define DIAPPIDFLAG_NOSIZE 0x00000002
  995. #define DIRECTINPUT_REGSTR_VAL_APPIDFLAGA "AppIdFlag"
  996. #define DIRECTINPUT_REGSTR_KEY_LASTAPPA "MostRecentApplication"
  997. #define DIRECTINPUT_REGSTR_KEY_LASTMAPAPPA "MostRecentMapperApplication"
  998. #define DIRECTINPUT_REGSTR_VAL_VERSIONA "Version"
  999. #define DIRECTINPUT_REGSTR_VAL_NAMEA "Name"
  1000. #define DIRECTINPUT_REGSTR_VAL_IDA "Id"
  1001. #define DIRECTINPUT_REGSTR_VAL_MAPPERA "UsesMapper"
  1002. #define DIRECTINPUT_REGSTR_VAL_LASTSTARTA "MostRecentStart"
  1003. #define DIRECTINPUT_REGSTR_VAL_APPIDFLAGW L"AppIdFlag"
  1004. #define DIRECTINPUT_REGSTR_KEY_LASTAPPW L"MostRecentApplication"
  1005. #define DIRECTINPUT_REGSTR_KEY_LASTMAPAPPW L"MostRecentMapperApplication"
  1006. #define DIRECTINPUT_REGSTR_VAL_VERSIONW L"Version"
  1007. #define DIRECTINPUT_REGSTR_VAL_NAMEW L"Name"
  1008. #define DIRECTINPUT_REGSTR_VAL_IDW L"Id"
  1009. #define DIRECTINPUT_REGSTR_VAL_MAPPERW L"UsesMapper"
  1010. #define DIRECTINPUT_REGSTR_VAL_LASTSTARTW L"MostRecentStart"
  1011. #define DIRECTINPUT_REGSTR_VAL_APPIDFLAG __MINGW_NAME_AW(DIRECTINPUT_REGSTR_VAL_APPIDFLAG)
  1012. #define DIRECTINPUT_REGSTR_KEY_LASTAPP __MINGW_NAME_AW(DIRECTINPUT_REGSTR_KEY_LASTAPP)
  1013. #define DIRECTINPUT_REGSTR_KEY_LASTMAPAPP __MINGW_NAME_AW(DIRECTINPUT_REGSTR_KEY_LASTMAPAPP)
  1014. #define DIRECTINPUT_REGSTR_VAL_VERSION __MINGW_NAME_AW(DIRECTINPUT_REGSTR_VAL_VERSION)
  1015. #define DIRECTINPUT_REGSTR_VAL_NAME __MINGW_NAME_AW(DIRECTINPUT_REGSTR_VAL_NAME)
  1016. #define DIRECTINPUT_REGSTR_VAL_ID __MINGW_NAME_AW(DIRECTINPUT_REGSTR_VAL_ID)
  1017. #define DIRECTINPUT_REGSTR_VAL_MAPPER __MINGW_NAME_AW(DIRECTINPUT_REGSTR_VAL_MAPPER)
  1018. #define DIRECTINPUT_REGSTR_VAL_LASTSTART __MINGW_NAME_AW(DIRECTINPUT_REGSTR_VAL_LASTSTART)
  1019. #define DIERR_NOMOREITEMS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_NO_MORE_ITEMS)
  1020. #define DIERR_DRIVERFIRST __MSABI_LONG(0x80040300)
  1021. #define DIERR_DRIVERLAST __MSABI_LONG(0x800403FF)
  1022. #define DIERR_INVALIDCLASSINSTALLER __MSABI_LONG(0x80040400)
  1023. #define DIERR_CANCELLED __MSABI_LONG(0x80040401)
  1024. #define DIERR_BADINF __MSABI_LONG(0x80040402)
  1025. #define DIDIFT_DELETE __MSABI_LONG(0x01000000)
  1026. #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
  1027. /* Begin additional prototypes for all interfaces */
  1028. /* End additional prototypes */
  1029. #ifdef __cplusplus
  1030. }
  1031. #endif
  1032. #endif /* __dinputd_h__ */