Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2047 lines
72 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1998 - 1999
  6. //
  7. // File: dii.idl
  8. //
  9. //--------------------------------------------------------------------------
  10. // TODO evaluate if these issues are important
  11. // NOTE no DICUSTOMFORCE STRUCTURE
  12. // NOTE need some way to fill out DIFILEEFFECT
  13. // NOTE we are not using DIPROPPOINTER do we need to be
  14. // NOTE we are not using DIPROPCAL do we need to be
  15. // NOTE we are not using DIPROPGUIDANDPATH do we need to be
  16. // NOTE we are not using DIPROPGUIDSTRING do we need to be
  17. // NOTE we are not using DIPROPCPOINTS do we need to be
  18. // NOTE we are not using CPOINT do we need to be
  19. #ifdef VB_ONLY
  20. #define I_dxj_DirectInput8 DirectInput8
  21. #define I_dxj_DirectInputDeviceInstance8 DirectInputDeviceInstance8
  22. #define I_dxj_DirectInputDeviceObjectInstance DirectInputDeviceObjectInstance
  23. #define I_dxj_DirectInputDevice8 DirectInputDevice8
  24. #define I_dxj_DirectInputEffect DirectInputEffect
  25. #define I_dxj_DirectInputEnumEffects DirectInputEnumEffects
  26. #define I_dxj_DIEnumDeviceObjects DirectInputEnumDeviceObjects
  27. #define I_dxj_DIEnumDevices8 DirectInputEnumDevices8
  28. #define DIDEVCAPS_CDESC DIDEVCAPS
  29. #define DIDEVICEOBJECTDATA_CDESC DIDEVICEOBJECTDATA
  30. #define DIPROPRANGE_CDESC DIPROPRANGE
  31. #define DIPROPLONG_CDESC DIPROPLONG
  32. #define DIOBJECTDATAFORMAT_CDESC DIOBJECTDATAFORMAT
  33. #define DIDATAFORMAT_CDESC DIDATAFORMAT
  34. #define DIACTION_CDESC DIACTION
  35. #define DIACTIONFORMAT_CDESC DIACTIONFORMAT
  36. #define DIMOUSESTATE_CDESC DIMOUSESTATE
  37. #define DIMOUSESTATE2_CDESC DIMOUSESTATE2
  38. #define DIKEYBOARDSTATE_CDESC DIKEYBOARDSTATE
  39. #define DIJOYSTATE_CDESC DIJOYSTATE
  40. #define DIJOYSTATE2_CDESC DIJOYSTATE2
  41. #define DICONDITION_CDESC DICONDITION
  42. #define DICONSTANTFORCE_CDESC DICONSTANTFORCE
  43. #define DIEFFECT_CDESC DIEFFECT
  44. #define DIENVELOPE_CDESC DIENVELOPE
  45. #define DIPERIODICFORCE_CDESC DIPERIODICFORCE
  46. #define DIRAMPFORCE_CDESC DIRAMPFORCE
  47. #define DICOLORSET_CDESC DICOLORSET
  48. #define DICONFIGUREDEVICESPARAMS_CDESC DICONFIGUREDEVICESPARAMS
  49. #define DIDEVICEIMAGEINFO_CDESC DIDEVICEIMAGEINFO
  50. #define DIDEVICEIMAGEINFOHEADER_CDESC DIDEVICEIMAGEINFOHEADER
  51. #define DIPROPGUIDANDPATH_CDESC DIPROPGUIDANDPATH
  52. #define DIPROPSTRING_CDESC DIPROPSTRING
  53. //Bug #41819
  54. #define CPOINT_CDESC CPOINT
  55. #define DIPROPCPOINTS_CDESC DIPROPCPOINTS
  56. #define DIPROPPOINTER_CDESC DIPROPPOINTER
  57. //End Bug #41819
  58. //Renamed for VB readability
  59. #define createDevice CreateDevice
  60. #define getDIDevices GetDIDevices
  61. #define getDevicesBySemantics GetDevicesBySemantics
  62. #define runControlPanel RunControlPanel
  63. #define getGuidInstance GetGuidInstance
  64. #define getGuidProduct GetGuidProduct
  65. #define getProductName GetProductName
  66. #define getInstanceName GetInstanceName
  67. #define getGuidFFDriver GetGuidFFDriver
  68. #define getUsagePage GetUsagePage
  69. #define getUsage GetUsage
  70. #define getDevType GetDevType
  71. #define getGuidType GetGuidType
  72. #define getOfs GetOfs
  73. #define getType GetType
  74. #define getFlags GetFlags
  75. #define getName GetName
  76. #define getCollectionNumber GetCollectionNumber
  77. #define getDesignatorIndex GetDesignatorIndex
  78. #define getUsagePage GetUsagePage
  79. #define getUsage GetUsage
  80. #define getDimension GetDimension
  81. #define getExponent GetExponent
  82. #define acquire Acquire
  83. #define getDeviceObjectsEnum GetDeviceObjectsEnum
  84. #define getCapabilities GetCapabilities
  85. #define getDeviceData GetDeviceData
  86. #define getDeviceInfo GetDeviceInfo
  87. #define getDeviceStateKeyboard GetDeviceStateKeyboard
  88. #define getDeviceStateMouse GetDeviceStateMouse
  89. #define getDeviceStateMouse2 GetDeviceStateMouse2
  90. #define getDeviceStateJoystick GetDeviceStateJoystick
  91. #define getDeviceStateJoystick2 GetDeviceStateJoystick2
  92. #define getDeviceState GetDeviceState
  93. #define getObjectInfo GetObjectInfo
  94. #define getProperty GetProperty
  95. #define setCooperativeLevel SetCooperativeLevel
  96. #define setCommonDataFormat SetCommonDataFormat
  97. #define setDataFormat SetDataFormat
  98. #define setEventNotification SetEventNotification
  99. #define setProperty SetProperty
  100. #define unacquire Unacquire
  101. #define poll Poll
  102. #define createEffect CreateEffect
  103. #define createCustomEffect CreateCustomEffect
  104. #define sendDeviceData SendDeviceData
  105. #define sendForceFeedbackCommand SendForceFeedbackCommand
  106. #define getForceFeedbackState GetForceFeedbackState
  107. #define getEffectsEnum GetEffectsEnum
  108. #define download Download
  109. #define getEffectGuid GetEffectGuid
  110. #define getEffectStatus GetEffectStatus
  111. #define start Start
  112. #define stop Stop
  113. #define unload Unload
  114. #define setParameters SetParameters
  115. #define getParameters GetParameters
  116. #define getCount GetCount
  117. #define getEffectGuid GetEffectGuid
  118. #define getType GetType
  119. #define getStaticParams GetStaticParams
  120. #define getDynamicParams GetDynamicParams
  121. #define getName GetName
  122. #define getItem GetItem
  123. #endif
  124. #ifdef C_ONLY
  125. #define CONST_DIENUMDEVICESFLAGS LONG
  126. #define CONST_DI8DEVICETYPE LONG
  127. #define CONST_DIDFTFLAGS LONG
  128. #define CONST_DIDGDDFLAGS LONG
  129. #define CONST_DIPHFLAGS LONG
  130. #define CONST_DISCLFLAGS LONG
  131. #define CONST_DISDDFLAGS LONG
  132. #define CONST_DIDEVCAPSFLAGS LONG
  133. #define CONST_DIDATAFORMATFLAGS LONG
  134. #define CONST_DIDEVICEOBJINSTANCEFLAGS LONG
  135. #define CONST_DIPROPERTYFLAGS LONG
  136. #define CONST_DIKEYFLAGS LONG
  137. #define CONST_DICOMMONDATAFORMATS LONG
  138. #define CONST_DICONDITIONFLAGS LONG
  139. #define CONST_DINPUTCONSTANTS LONG
  140. #define CONST_DISFFCFLAGS LONG
  141. #define CONST_DINPUTERR LONG
  142. #define CONST_DIEFTFLAGS LONG
  143. #define CONST_DIEFFFLAGS LONG
  144. #define CONST_DIEPFLAGS LONG
  145. #define CONST_DIEGESFLAGS LONG
  146. #define CONST_DIGFFSFLAGS LONG
  147. #define CONST_DIMOUSEOFS LONG
  148. #define CONST_DIJOYSTICKOFS LONG
  149. #endif
  150. //For bug #41819
  151. #define MAXCPOINTSNUM_CDESC 8
  152. ///////////////////////////////////////////////////////////////////////////
  153. //
  154. // Direct Input Inteface List
  155. //
  156. ///////////////////////////////////////////////////////////////////////////
  157. interface I_dxj_DirectInput8;
  158. interface I_dxj_DirectInputDevice8;
  159. interface I_dxj_DirectInputEffect;
  160. interface I_dxj_DirectInputEnumEffects;
  161. interface I_dxj_DIEnumDevices8;
  162. interface I_dxj_DIEnumDeviceObjects;
  163. interface I_dxj_DIEnumCreatedEffectObjects;
  164. ///////////////////////////////////////////////////////////////////////////
  165. //
  166. // Direct Input Constants
  167. //
  168. ///////////////////////////////////////////////////////////////////////////
  169. #ifdef VB_ONLY
  170. #include "dig.idl"
  171. //
  172. // Direct InputString Constants
  173. //
  174. [
  175. dllname("dx8vb.dll")
  176. ]
  177. module DINPUT8STRINGCONSTANTS
  178. {
  179. // key names for address components
  180. const BSTR DIPROP_AUTOCENTER=L"diprop_autocenter";
  181. const BSTR DIPROP_AXISMODE=L"diprop_axismode";
  182. const BSTR DIPROP_BUFFERSIZE=L"diprop_buffersize";
  183. const BSTR DIPROP_CALIBRATIONMODE=L"diprop_calibrationmode";
  184. const BSTR DIPROP_DEADZONE=L"diprop_deadzone";
  185. const BSTR DIPROP_RANGE=L"diprop_range";
  186. const BSTR DIPROP_SATURATION=L"diprop_saturation";
  187. const BSTR DIPROP_KEYNAME=L"diprop_keyname";
  188. const BSTR DIPROP_SCANCODE=L"diprop_scancode";
  189. //Added for bug #41819
  190. const BSTR DIPROP_GRANULARITY =L"diprop_granularity";
  191. const BSTR DIPROP_FFGAIN =L"diprop_ffgain";
  192. const BSTR DIPROP_FFLOAD =L"diprop_ffload";
  193. const BSTR DIPROP_CALIBRATION =L"diprop_calibration";
  194. const BSTR DIPROP_GUIDANDPATH =L"diprop_guidandpath";
  195. const BSTR DIPROP_INSTANCENAME =L"diprop_instancename";
  196. const BSTR DIPROP_PRODUCTNAME =L"diprop_productname";
  197. const BSTR DIPROP_JOYSTICKID =L"diprop_joystickid";
  198. const BSTR DIPROP_GETPORTDISPLAYNAME =L"diprop_getportdisplayname";
  199. const BSTR DIPROP_PHYSICALRANGE =L"diprop_physicalrange";
  200. const BSTR DIPROP_LOGICALRANGE =L"diprop_logicalrange";
  201. const BSTR DIPROP_CPOINTS =L"diprop_cpoints";
  202. const BSTR DIPROP_APPDATA =L"diprop_appdata";
  203. //const BSTR DIPROP_VIDPID =L"diprop_vidpid";
  204. const BSTR DIPROP_USERNAME =L"diprop_username";
  205. //const BSTR DIPROP_TYPENAME =L"diprop_typename";
  206. //End bug #41819
  207. };
  208. // pdon asked for removal
  209. //
  210. [helpcontext(74147)]
  211. typedef enum CONST_DIEDBSFLAGS {
  212. DIEDBS_MAPPEDPRI1 = 0x00000001,
  213. DIEDBS_MAPPEDPRI2 = 0x00000002,
  214. DIEDBS_RECENTDEVICE = 0x00000010,
  215. DIEDBS_NEWDEVICE = 0x00000020,
  216. } CONST_DIEDBSFLAGS;
  217. //
  218. // #define DIEDBS_MAPPEDPRI1 0x00000001
  219. // #define DIEDBS_MAPPEDPRI2 0x00000002
  220. // #define DIEDBS_RECENTDEVICE 0x00000010
  221. // #define DIEDBS_NEWDEVICE 0x00000020
  222. [helpcontext(84147)]
  223. typedef enum CONST_DIEDBSFLFLAGS {
  224. DIEDBSFL_ATTACHEDONLY = 0x00000000,
  225. DIEDBSFL_THISUSER = 0x00000010 ,
  226. DIEDBSFL_FORCEFEEDBACK = 0x00000100,
  227. DIEDBSFL_AVAILABLEDEVICES = 0x00001000,
  228. DIEDBSFL_MULTIMICEKEYBOARDS= 0x00002000,
  229. DIEDBSFL_NONGAMINGDEVICES = 0x00004000,
  230. DIEDBSFL_VALID = 0x00007110,
  231. } CONST_DIEDBSFLFLAGS;
  232. [helpcontext(84138)]
  233. typedef enum CONST_DIDALFLAGS {
  234. DIDAL_CENTERED = 0x00000000,
  235. DIDAL_LEFTALIGNED = 0x00000001,
  236. DIDAL_RIGHTALIGNED = 0x00000002,
  237. DIDAL_MIDDLE = 0x00000000,
  238. DIDAL_TOPALIGNED = 0x00000004,
  239. DIDAL_BOTTOMALIGNED = 0x00000008,
  240. } CONST_DIDALFLAGS;
  241. [helpcontext(84160)]
  242. typedef enum CONST_DIMAPFLAGS {
  243. // DIPHYSICAL_KEYBOARD = 0x81000000,
  244. // DIPHYSICAL_MOUSE = 0x82000000,
  245. // Removed for RC1
  246. // DIPOV_ANY = 0xFF0046FF,
  247. // DIBUTTON_ANY = 0xFF0044FF,
  248. // DIAXIS_ANY = 0xFF0042FF,
  249. // DIAXIS_ANY_X = 0xFF00C2FF,
  250. // DIAXIS_ANY_Y = 0xFF0142FF,
  251. // DIAXIS_ANY_Z = 0xFF01C2FF,
  252. // DIAXIS_ANY_R = 0xFF0242FF,
  253. // DIAXIS_ANY_U = 0xFF02C2FF,
  254. // DIAXIS_ANY_V = 0xFF0342FF,
  255. // DIAXIS_ANY_A = 0xFF03C2FF,
  256. // DIAXIS_ANY_B = 0xFF0442FF,
  257. // DIAXIS_ANY_C = 0xFF04C2FF,
  258. /*
  259. * "ANY" semantics can be used as a last resort to get mappings for actions
  260. * that match nothing in the chosen virtual genre. These semantics will be
  261. * mapped at a lower priority that virtual genre semantics. Also, hardware
  262. * vendors will not be able to provide sensible mappings for these unless
  263. * they provide application specific mappings.
  264. */
  265. DIAXIS_ANY_X_1 = 0xFF00C201 ,
  266. DIAXIS_ANY_X_2 = 0xFF00C202 ,
  267. DIAXIS_ANY_Y_1 = 0xFF014201 ,
  268. DIAXIS_ANY_Y_2 = 0xFF014202 ,
  269. DIAXIS_ANY_Z_1 = 0xFF01C201 ,
  270. DIAXIS_ANY_Z_2 = 0xFF01C202 ,
  271. DIAXIS_ANY_R_1 = 0xFF024201 ,
  272. DIAXIS_ANY_R_2 = 0xFF024202 ,
  273. DIAXIS_ANY_U_1 = 0xFF02C201 ,
  274. DIAXIS_ANY_U_2 = 0xFF02C202 ,
  275. DIAXIS_ANY_V_1 = 0xFF034201 ,
  276. DIAXIS_ANY_V_2 = 0xFF034202 ,
  277. DIAXIS_ANY_A_1 = 0xFF03C201 ,
  278. DIAXIS_ANY_A_2 = 0xFF03C202 ,
  279. DIAXIS_ANY_B_1 = 0xFF044201 ,
  280. DIAXIS_ANY_B_2 = 0xFF044202 ,
  281. DIAXIS_ANY_C_1 = 0xFF04C201 ,
  282. DIAXIS_ANY_C_2 = 0xFF04C202 ,
  283. DIAXIS_ANY_S_1 = 0xFF054201 ,
  284. DIAXIS_ANY_S_2 = 0xFF054202 ,
  285. DIAXIS_ANY_1 =0xFF004201 ,
  286. DIAXIS_ANY_2 =0xFF004202 ,
  287. DIAXIS_ANY_3 =0xFF004203 ,
  288. DIAXIS_ANY_4 =0xFF004204 ,
  289. DIPOV_ANY_1 =0xFF004601 ,
  290. DIPOV_ANY_2 =0xFF004602 ,
  291. DIPOV_ANY_3 =0xFF004603 ,
  292. DIPOV_ANY_4 =0xFF004604 ,
  293. DIBUTTON_ANY = 0xFF004400 ,
  294. } CONST_DIMAPFLAGS;
  295. [helpcontext(84154)]
  296. typedef enum CONST_DIFEFFLAGS
  297. {
  298. DIFEF_DEFAULT =0x00000000,
  299. DIFEF_INCLUDENONSTANDARD =0x00000001,
  300. DIFEF_MODIFYIFNEEDED =0x00000010
  301. } CONST_DIFEFFLAGS;
  302. [helpcontext(84140)]
  303. typedef enum CONST_DIDBAMFLAGS {
  304. DIDBAM_DEFAULT = 0x00000000,
  305. DIDBAM_PRESERVE = 0x00000001,
  306. DIDBAM_INITIALIZE = 0x00000002,
  307. DIDBAM_HWDEFAULTS = 0x00000004,
  308. } CONST_IDBAMFLAGS;
  309. [helpcontext(84199)]
  310. typedef enum CONST_DIAFTSFLAGS {
  311. DIAFTS_NEWDEVICELOW =0xFFFFFFFF,
  312. DIAFTS_NEWDEVICEHIGH =0xFFFFFFFF,
  313. DIAFTS_UNUSEDDEVICELOW =0x00000000,
  314. DIAFTS_UNUSEDDEVICEHIGH =0x00000000,
  315. } CONST_DIAFTSFLAGS;
  316. [helpcontext(84146)]
  317. typedef enum CONST_DIDSAMFLAGS
  318. {
  319. DIDSAM_DEFAULT = 0x00000000,
  320. DIDSAM_NOUSER = 0x00000001,
  321. DIDSAM_FORCESAVE = 0x00000002,
  322. } CONST_DIDSAMFLAGS;
  323. [helpcontext(84135)]
  324. typedef enum CONST_DICDFLAGS {
  325. DICD_DEFAULT = 0x00000000,
  326. DICD_EDIT = 0x00000001
  327. } CONST_DICDFLAGS;
  328. [helpcontext(84133)]
  329. typedef enum CONST_DIAFLAGS
  330. {
  331. DIA_FORCEFEEDBACK = 0x00000001,
  332. DIA_APPMAPPED = 0x00000002,
  333. DIA_APPNOMAP = 0x00000004,
  334. DIA_NORANGE = 0x00000008,
  335. DIA_APPFIXED = 0x00000010
  336. } CONST_DIAFLAGS;
  337. [helpcontext(84134)]
  338. typedef enum CONST_DIAHFLAGS
  339. {
  340. DIAH_UNMAPPED = 0x00000000,
  341. DIAH_USERCONFIG = 0x00000001,
  342. DIAH_APPREQUESTED = 0x00000002,
  343. DIAH_HWAPP = 0x00000004,
  344. DIAH_HWDEFAULT = 0x00000008,
  345. // DIAH_OTHERAPP = 0x00000010,
  346. DIAH_DEFAULT = 0x00000020,
  347. DIAH_ERROR = 0x80000000,
  348. } CONST_DIAHFLAGS;
  349. [helpcontext(84151)]
  350. typedef enum CONST_DIENUMDEVICESFLAGS {
  351. DIEDFL_ALLDEVICES =0x00000000,
  352. DIEDFL_ATTACHEDONLY =0x00000001,
  353. DIEDFL_FORCEFEEDBACK =0x00000100,
  354. DIEDFL_INCLUDEALIASES =0x00010000,
  355. DIEDFL_INCLUDEPHANTOMS =0x00020000,
  356. DIEDFL_INCLUDEHIDDEN =0x00040000
  357. } CONST_DIENUMDEVICESFLAGS;
  358. [helpcontext(84132)]
  359. typedef enum CONST_DI8DEVICETYPE {
  360. DI8DEVCLASS_ALL =0,
  361. DI8DEVCLASS_DEVICE =1,
  362. DI8DEVCLASS_POINTER =2,
  363. DI8DEVCLASS_KEYBOARD =3,
  364. DI8DEVCLASS_GAMECTRL =4,
  365. DI8DEVTYPE_DEVICE =0x11,
  366. DI8DEVTYPE_MOUSE =0x12,
  367. DI8DEVTYPE_KEYBOARD =0x13,
  368. DI8DEVTYPE_JOYSTICK =0x14,
  369. DI8DEVTYPE_GAMEPAD =0x15,
  370. DI8DEVTYPE_DRIVING =0x16,
  371. DI8DEVTYPE_FLIGHT =0x17,
  372. DI8DEVTYPE_1STPERSON =0x18,
  373. DI8DEVTYPE_DEVICECTRL =0x19,
  374. DI8DEVTYPE_SCREENPOINTER =0x1A,
  375. DI8DEVTYPE_REMOTE =0x1B,
  376. DI8DEVTYPE_SUPPLEMENTAL =0x1C,
  377. [hidden] DI8DEVTYPE_FORCEDWORD =0x7F000000,
  378. } CONST_DI8DEVICETYPE;
  379. [helpcontext(84131)]
  380. typedef enum CONST_DI8DEVICESUBTYPE {
  381. DIDEVTYPE_HID =0x00010000,
  382. DI8DEVTYPEMOUSE_UNKNOWN = 0x100,
  383. DI8DEVTYPEMOUSE_TRADITIONAL = 0x200,
  384. DI8DEVTYPEMOUSE_FINGERSTICK = 0x300,
  385. DI8DEVTYPEMOUSE_TOUCHPAD = 0x400,
  386. DI8DEVTYPEMOUSE_TRACKBALL = 0x500,
  387. DI8DEVTYPEMOUSE_ABSOLUTE = 0x600,
  388. DI8DEVTYPEKEYBOARD_UNKNOWN = 0x000,
  389. DI8DEVTYPEKEYBOARD_PCXT = 0x100,
  390. DI8DEVTYPEKEYBOARD_OLIVETTI = 0x200,
  391. DI8DEVTYPEKEYBOARD_PCAT = 0x300,
  392. DI8DEVTYPEKEYBOARD_PCENH = 0x400,
  393. DI8DEVTYPEKEYBOARD_NOKIA1050 = 0x500,
  394. DI8DEVTYPEKEYBOARD_NOKIA9140 = 0x600,
  395. DI8DEVTYPEKEYBOARD_NEC98 = 0x700,
  396. DI8DEVTYPEKEYBOARD_NEC98LAPTOP = 0x800,
  397. DI8DEVTYPEKEYBOARD_NEC98106 = 0x900,
  398. DI8DEVTYPEKEYBOARD_JAPAN106 = 0xA00,
  399. DI8DEVTYPEKEYBOARD_JAPANAX = 0xB00,
  400. DI8DEVTYPEKEYBOARD_J3100 = 0xC00,
  401. DI8DEVTYPE_LIMITEDGAMESUBTYPE = 0x100,
  402. DI8DEVTYPEJOYSTICK_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE,
  403. DI8DEVTYPEJOYSTICK_STANDARD = 0x200,
  404. DI8D8EVTYPEJOYSTICK_ENHANCED = 0x300,
  405. DI8DEVTYPEGAMEPAD_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE,
  406. DI8DEVTYPEGAMEPAD_STANDARD = 0x200,
  407. DI8DEVTYPEGAMEPAD_TILT = 0x300,
  408. DI8DEVTYPEDRIVING_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE,
  409. DI8DEVTYPEDRIVING_COMBINEDPEDALS = 0x200,
  410. DI8DEVTYPEDRIVING_DUALPEDALS = 0x300,
  411. DI8DEVTYPEDRIVING_THREEPEDALS = 0x400,
  412. DI8DEVTYPEDRIVING_HANDHELD = 0x500,
  413. DI8DEVTYPEFLIGHT_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE,
  414. DI8DEVTYPEFLIGHT_STICK = 0x200,
  415. DI8DEVTYPEFLIGHT_YOKE = 0x300,
  416. DI8DEVTYPEFLIGHT_RC = 0x400,
  417. DI8DEVTYPE1STPERSON_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE,
  418. DI8DEVTYPE1STPERSON_UNKNOWN = 0x200,
  419. DI8DEVTYPE1STPERSON_SIXDOF = 0x300,
  420. DI8DEVTYPE1STPERSON_SHOOTER = 0x400,
  421. DI8DEVTYPESCREENPTR_UNKNOWN = 0x200,
  422. DI8DEVTYPESCREENPTR_LIGHTGUN = 0x300,
  423. DI8DEVTYPESCREENPTR_LIGHTPEN = 0x400,
  424. DI8DEVTYPESCREENPTR_TOUCH = 0x500,
  425. DI8DEVTYPEREMOTE_UNKNOWN = 0x200,
  426. DI8DEVTYPEDEVICECTRL_UNKNOWN = 0x200,
  427. DI8DEVTYPEDEVICECTRL_COMMSSELECTION = 0x300,
  428. DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED = 0x400,
  429. DI8DEVTYPESUPPLEMENTAL_UNKNOWN = 0x200,
  430. DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER = 0x300,
  431. DI8DEVTYPESUPPLEMENTAL_HEADTRACKER = 0x400,
  432. DI8DEVTYPESUPPLEMENTAL_HANDTRACKER = 0x500,
  433. DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE = 0x600,
  434. DI8DEVTYPESUPPLEMENTAL_SHIFTER = 0x700,
  435. DI8DEVTYPESUPPLEMENTAL_THROTTLE = 0x800,
  436. DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE = 0x900,
  437. DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS = 0xA00,
  438. DI8DEVTYPESUPPLEMENTAL_DUALPEDALS = 0xB00,
  439. DI8DEVTYPESUPPLEMENTAL_THREEPEDALS = 0xC00,
  440. DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS = 0xD00
  441. } CONST_DI8DEVICESUBTYPE;
  442. [helpcontext(84145)]
  443. typedef enum CONST_DIDIFTFLAGS {
  444. DIDIFT_CONFIGURATION = 0x00000001,
  445. DIDIFT_OVERLAY = 0x00000002,
  446. } CONST_DIDIFTFLAGS;
  447. [helpcontext(84143)]
  448. typedef enum CONST_DIDFTFLAGS {
  449. DIDFT_ALL =0x00000000,
  450. DIDFT_RELAXIS =0x00000001,
  451. DIDFT_ABSAXIS =0x00000002,
  452. DIDFT_AXIS =0x00000003,
  453. DIDFT_PSHBUTTON =0x00000004,
  454. DIDFT_TGLBUTTON =0x00000008,
  455. DIDFT_BUTTON =0x0000000C,
  456. DIDFT_POV =0x00000010,
  457. DIDFT_COLLECTION =0x00000040,
  458. DIDFT_NODATA =0x00000080,
  459. DIDFT_ANYINSTANCE =0x00FFFF00,
  460. DIDFT_INSTANCEMASK =DIDFT_ANYINSTANCE,
  461. DIDFT_FFACTUATOR =0x01000000,
  462. DIDFT_FFEFFECTTRIGGER =0x02000000,
  463. DIDFT_NOCOLLECTION =0x00FFFF00,
  464. DIDFT_VENDORDEFINED =0x04000000,
  465. DIDFT_ALIAS =0x08000000,
  466. DIDFT_OUTPUT =0x10000000,
  467. } CONST_DIDFTFLAGS;
  468. [helpcontext(84144)]
  469. typedef enum CONST_DIDGDDFLAGS {
  470. DIGDD_DEFAULT =0x00000000,
  471. DIGDD_PEEK =0x00000001
  472. } CONST_DIDGDDFLAGS;
  473. [helpcontext(84165)]
  474. typedef enum CONST_DIPHFLAGS {
  475. DIPH_DEVICE =0,
  476. DIPH_BYOFFSET =1,
  477. DIPH_BYID =2,
  478. DIPH_BYUSAGE =3
  479. } CONST_DIPHFLAGS;
  480. [helpcontext(84166)]
  481. typedef enum CONST_DISCLFLAGS {
  482. DISCL_EXCLUSIVE =0x00000001,
  483. DISCL_NONEXCLUSIVE =0x00000002,
  484. DISCL_FOREGROUND =0x00000004,
  485. DISCL_BACKGROUND =0x00000008,
  486. DISCL_NOWINKEY =0x00000010
  487. } CONST_DISCLFLAGS;
  488. [helpcontext(84141)]
  489. typedef enum CONST_DIDEVCAPSFLAGS {
  490. DIDC_ATTACHED =0x00000001,
  491. DIDC_POLLEDDEVICE =0x00000002,
  492. DIDC_EMULATED =0x00000004,
  493. DIDC_POLLEDDATAFORMAT =0x00000008,
  494. DIDC_FORCEFEEDBACK =0x00000100,
  495. DIDC_FFATTACK =0x00000200,
  496. DIDC_FFFADE =0x00000400,
  497. DIDC_SATURATION =0x00000800,
  498. DIDC_POSNEGCOEFFICIENTS =0x00001000,
  499. DIDC_POSNEGSATURATION =0x00002000,
  500. DIDC_DEADBAND =0x00004000,
  501. DIDC_STARTDELAY =0x00008000,
  502. DIDC_ALIAS =0x00010000,
  503. DIDC_PHANTOM =0x00020000,
  504. DIDC_HIDDEN =0x00040000
  505. } CONST_DIDEVCAPSFLAGS;
  506. [helpcontext(84139)]
  507. typedef enum CONST_DIDATAFORMATFLAGS {
  508. DIDF_ABSAXIS =0x00000001,
  509. DIDF_RELAXIS =0x00000002
  510. } CONST_DIDATAFORMATFLAGS;
  511. [helpcontext(84142)]
  512. typedef enum CONST_DIDEVICEOBJINSTANCEFLAGS {
  513. DIDOI_FFACTUATOR =0x00000001,
  514. DIDOI_FFEFFECTTRIGGER =0x00000002,
  515. DIDOI_POLLED =0x00008000,
  516. DIDOI_ASPECTPOSITION =0x00000100,
  517. DIDOI_ASPECTVELOCITY =0x00000200,
  518. DIDOI_ASPECTACCEL =0x00000300,
  519. DIDOI_ASPECTFORCE =0x00000400,
  520. DIDOI_ASPECTMASK =0x00000F00,
  521. DIDOI_GUIDISUSAGE =0x00010000
  522. } CONST_DIDEVICEOBJINSTANCEFLAGS;
  523. /*
  524. [helpcontext(84847)]
  525. typedef enum CONST_DIPROPERTYFLAGS {
  526. DIPROP_BUFFERSIZE =1,
  527. DIPROP_AXISMODE =2,
  528. DIPROPAXISMODE_ABS =0,
  529. DIPROPAXISMODE_REL =1,
  530. DIPROP_GRANULARITY =3,
  531. DIPROP_RANGE =4,
  532. DIPROP_DEADZONE =5,
  533. DIPROP_SATURATION =6,
  534. DIPROP_FFGAIN =7,
  535. DIPROP_FFLOAD =8,
  536. DIPROP_AUTOCENTER =9,
  537. DIPROPAUTOCENTER_OFF =0,
  538. DIPROPAUTOCENTER_ON =1,
  539. DIPROP_CALIBRATIONMODE =10,
  540. //TODO NOTE THESE ARE NEW AND NEED TO BE IMPLEMENTED
  541. DIPROP_CALIBRATION =11,
  542. DIPROP_GUIDANDPATH =12,
  543. DIPROP_INSTANCENAME =13,
  544. DIPROP_PRODUCTNAME =14,
  545. DIPROP_JOYSTICKID =15,
  546. DIPROP_GETPORTDISPLAYNAME =16,
  547. DIPROP_PHYSICALRANGE =18,
  548. DIPROP_LOGICALRANGE =19,
  549. DIPROP_KEYNAME =20,
  550. DIPROP_CPOINTS =21,
  551. DIPROP_APPDATA =22,
  552. DIPROP_SCANCODE =23,
  553. DIPROP_VIDPID =24,
  554. DIPROP_USERNAME =25,
  555. DIPROP_TYPENAME =26,
  556. DIPROP_ENABLEREPORTID =0x0000FFFB,
  557. DIPROPCALIBRATIONMODE_COOKED= 0,
  558. DIPROPCALIBRATIONMODE_RAW = 1
  559. } CONST_DIPROPERTYFLAGS;
  560. */
  561. [helpcontext(84159)]
  562. typedef enum CONST_DIKEYFLAGS {
  563. DIK_ESCAPE = 0x01,
  564. DIK_1 = 0x02,
  565. DIK_2 = 0x03,
  566. DIK_3 = 0x04,
  567. DIK_4 = 0x05,
  568. DIK_5 = 0x06,
  569. DIK_6 = 0x07,
  570. DIK_7 = 0x08,
  571. DIK_8 = 0x09,
  572. DIK_9 = 0x0A,
  573. DIK_0 = 0x0B,
  574. DIK_MINUS = 0x0C , /* - on main keyboard */
  575. DIK_EQUALS = 0x0D,
  576. DIK_BACK = 0x0E , /* backspace */
  577. DIK_BACKSPACE = 0x0E ,
  578. DIK_TAB = 0x0F,
  579. DIK_Q = 0x10,
  580. DIK_W = 0x11,
  581. DIK_E = 0x12,
  582. DIK_R = 0x13,
  583. DIK_T = 0x14,
  584. DIK_Y = 0x15,
  585. DIK_U = 0x16,
  586. DIK_I = 0x17,
  587. DIK_O = 0x18,
  588. DIK_P = 0x19,
  589. DIK_LBRACKET = 0x1A,
  590. DIK_RBRACKET = 0x1B,
  591. DIK_RETURN = 0x1C , /* Enter on main keyboard */
  592. DIK_LCONTROL = 0x1D,
  593. DIK_A = 0x1E,
  594. DIK_S = 0x1F,
  595. DIK_D = 0x20,
  596. DIK_F = 0x21,
  597. DIK_G = 0x22,
  598. DIK_H = 0x23,
  599. DIK_J = 0x24,
  600. DIK_K = 0x25,
  601. DIK_L = 0x26,
  602. DIK_SEMICOLON = 0x27,
  603. DIK_APOSTROPHE = 0x28,
  604. DIK_GRAVE = 0x29 , /* accent grave */
  605. DIK_LSHIFT = 0x2A,
  606. DIK_BACKSLASH = 0x2B,
  607. DIK_Z = 0x2C,
  608. DIK_X = 0x2D,
  609. DIK_C = 0x2E,
  610. DIK_V = 0x2F,
  611. DIK_B = 0x30,
  612. DIK_N = 0x31,
  613. DIK_M = 0x32,
  614. DIK_COMMA = 0x33,
  615. DIK_PERIOD = 0x34 , /* . on main keyboard */
  616. DIK_SLASH = 0x35 , /* / on main keyboard */
  617. DIK_RSHIFT = 0x36,
  618. DIK_MULTIPLY = 0x37 , /* * on numeric keypad */
  619. DIK_NUMPADSTAR = 0x37 ,
  620. DIK_LMENU = 0x38 , /* left Alt */
  621. DIK_LALT = 0x38 ,
  622. DIK_SPACE = 0x39,
  623. DIK_CAPITAL = 0x3A,
  624. DIK_CAPSLOCK = 0x3A,
  625. DIK_F1 = 0x3B,
  626. DIK_F2 = 0x3C,
  627. DIK_F3 = 0x3D,
  628. DIK_F4 = 0x3E,
  629. DIK_F5 = 0x3F,
  630. DIK_F6 = 0x40,
  631. DIK_F7 = 0x41,
  632. DIK_F8 = 0x42,
  633. DIK_F9 = 0x43,
  634. DIK_F10 = 0x44,
  635. DIK_NUMLOCK = 0x45,
  636. DIK_SCROLL = 0x46 , /* Scroll Lock */
  637. DIK_NUMPAD7 = 0x47,
  638. DIK_NUMPAD8 = 0x48,
  639. DIK_NUMPAD9 = 0x49,
  640. DIK_SUBTRACT = 0x4A , /* - on numeric keypad */
  641. DIK_NUMPADMINUS = 0x4A , /* - on numeric keypad */
  642. DIK_NUMPAD4 = 0x4B,
  643. DIK_NUMPAD5 = 0x4C,
  644. DIK_NUMPAD6 = 0x4D,
  645. DIK_ADD = 0x4E , /* + on numeric keypad */
  646. DIK_NUMPADPLUS = 0x4E , /* + on numeric keypad */
  647. DIK_NUMPAD1 = 0x4F,
  648. DIK_NUMPAD2 = 0x50,
  649. DIK_NUMPAD3 = 0x51,
  650. DIK_NUMPAD0 = 0x52,
  651. DIK_DECIMAL = 0x53, /* . on numeric keypad */
  652. DIK_NUMPADPERIOD = 0x53, /* . on numeric keypad */
  653. DIK_OEM_102 = 0x56, /* < > | on UK/Germany keyboards */
  654. DIK_F11 = 0x57,
  655. DIK_F12 = 0x58 ,
  656. DIK_F13 = 0x64 , /* (NEC PC98) */
  657. DIK_F14 = 0x65 , /* (NEC PC98) */
  658. DIK_F15 = 0x66 , /* (NEC PC98) */
  659. DIK_KANA = 0x70 , /* (Japanese keyboard) */
  660. DIK_ABNT_C1 = 0x73 , /* / ? on Portugese (Brazilian) keyboards */
  661. DIK_CONVERT = 0x79 , /* (Japanese keyboard) */
  662. DIK_NOCONVERT = 0x7B , /* (Japanese keyboard) */
  663. DIK_YEN = 0x7D , /* (Japanese keyboard) */
  664. DIK_ABNT_C2 = 0x7E , /* Numpad . on Portugese (Brazilian) keyboards */
  665. DIK_NUMPADEQUALS = 0x8D , /* = on numeric keypad (NEC PC98) */
  666. DIK_CIRCUMFLEX = 0x90 , /* (Japanese keyboard) */
  667. DIK_PREVTRACK = 0x90 , /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */
  668. DIK_AT = 0x91 , /* (NEC PC98) */
  669. DIK_COLON = 0x92 , /* (NEC PC98) */
  670. DIK_UNDERLINE = 0x93 , /* (NEC PC98) */
  671. DIK_KANJI = 0x94 , /* (Japanese keyboard) */
  672. DIK_STOP = 0x95 , /* (NEC PC98) */
  673. DIK_AX = 0x96 , /* (Japan AX) */
  674. DIK_UNLABELED = 0x97 , /* (J3100) */
  675. DIK_NEXTTRACK = 0x99 , /* Next Track */
  676. DIK_NUMPADENTER = 0x9C , /* Enter on numeric keypad */
  677. DIK_RCONTROL = 0x9D ,
  678. DIK_MUTE = 0xA0 , /* Mute */
  679. DIK_CALCULATOR = 0xA1 , /* Calculator */
  680. DIK_PLAYPAUSE = 0xA2 , /* Play / Pause */
  681. DIK_MEDIASTOP = 0xA4 , /* Media Stop */
  682. DIK_VOLUMEDOWN = 0xAE , /* Volume - */
  683. DIK_VOLUMEUP = 0xB0 , /* Volume + */
  684. DIK_WEBHOME = 0xB2 , /* Web home */
  685. DIK_NUMPADCOMMA = 0xB3, /* , on numeric keypad (NEC PC98) */
  686. DIK_DIVIDE = 0xB5, /* / on numeric keypad */
  687. DIK_NUMPADSLASH = 0xB5, /* / on numeric keypad */
  688. DIK_SYSRQ = 0xB7,
  689. DIK_RMENU = 0xB8, /* right Al t */
  690. DIK_RALT = 0xB8, /* right Al t */
  691. DIK_PAUSE = 0xC5, /* Pause */
  692. DIK_HOME = 0xC7, /* Home on arrow keypad */
  693. DIK_UP = 0xC8, /* UpArrow on arrow keypad */
  694. DIK_UPARROW = 0xC8, /* UpArrow on arrow keypad */
  695. DIK_PRIOR = 0xC9, /* PgUp on arrow keypad */
  696. DIK_PGUP = 0xC9, /* PgUp on arrow keypad */
  697. DIK_LEFT = 0xCB, /* LeftArrow on arrow keypad */
  698. DIK_LEFTARROW = 0xCB, /* LeftArrow on arrow keypad */
  699. DIK_RIGHT = 0xCD, /* RightArrow on arrow keypad */
  700. DIK_RIGHTARROW = 0xCD, /* RightArrow on arrow keypad */
  701. DIK_END = 0xCF, /* End on arrow keypad */
  702. DIK_DOWN = 0xD0, /* DownArrow on arrow keypad */
  703. DIK_DOWNARROW = 0xD0, /* DownArrow on arrow keypad */
  704. DIK_NEXT = 0xD1, /* PgDn on arrow keypad */
  705. DIK_PGDN = 0xD1, /* PgDn on arrow keypad */
  706. DIK_INSERT = 0xD2, /* Insert on arrow keypad */
  707. DIK_DELETE = 0xD3, /* Delete on arrow keypad */
  708. DIK_LWIN = 0xDB, /* Left Windows key */
  709. DIK_RWIN = 0xDC, /* Right Windows key */
  710. DIK_APPS = 0xDD, /* AppMenu key */
  711. DIK_POWER = 0xDE, /* System Power */
  712. DIK_SLEEP = 0xDF, /* System Sleep */
  713. DIK_WAKE = 0xE3, /* System Wake */
  714. DIK_WEBSEARCH = 0xE5, /* Web Search */
  715. DIK_WEBFAVORITES = 0xE6, /* Web Favorites */
  716. DIK_WEBREFRESH = 0xE7, /* Web Refresh */
  717. DIK_WEBSTOP = 0xE8, /* Web Stop */
  718. DIK_WEBFORWARD = 0xE9, /* Web Forward */
  719. DIK_WEBBACK = 0xEA, /* Web Back */
  720. DIK_MYCOMPUTER = 0xEB, /* My Computer */
  721. DIK_MAIL = 0xEC, /* Mail */
  722. DIK_MEDIASELECT = 0xED, /* Media Select */
  723. } CONST_DIKEYFLAGS;
  724. [helpcontext(84158)]
  725. typedef enum CONST_DIKEYBOARDFLAGS {
  726. DIKEYBOARD_ESCAPE = 0x81000401,
  727. DIKEYBOARD_1 = 0x81000402,
  728. DIKEYBOARD_2 = 0x81000403,
  729. DIKEYBOARD_3 = 0x81000404,
  730. DIKEYBOARD_4 = 0x81000405,
  731. DIKEYBOARD_5 = 0x81000406,
  732. DIKEYBOARD_6 = 0x81000407,
  733. DIKEYBOARD_7 = 0x81000408,
  734. DIKEYBOARD_8 = 0x81000409,
  735. DIKEYBOARD_9 = 0x8100040A,
  736. DIKEYBOARD_0 = 0x8100040B,
  737. DIKEYBOARD_MINUS = 0x8100040C, /* - on main keyboard */
  738. DIKEYBOARD_EQUALS = 0x8100040D,
  739. DIKEYBOARD_BACK = 0x8100040E, /* backspace */
  740. DIKEYBOARD_TAB = 0x8100040F,
  741. DIKEYBOARD_Q = 0x81000410,
  742. DIKEYBOARD_W = 0x81000411,
  743. DIKEYBOARD_E = 0x81000412,
  744. DIKEYBOARD_R = 0x81000413,
  745. DIKEYBOARD_T = 0x81000414,
  746. DIKEYBOARD_Y = 0x81000415,
  747. DIKEYBOARD_U = 0x81000416,
  748. DIKEYBOARD_I = 0x81000417,
  749. DIKEYBOARD_O = 0x81000418,
  750. DIKEYBOARD_P = 0x81000419,
  751. DIKEYBOARD_LBRACKET = 0x8100041A,
  752. DIKEYBOARD_RBRACKET = 0x8100041B,
  753. DIKEYBOARD_RETURN = 0x8100041C, /* Enter on main keyboard */
  754. DIKEYBOARD_LCONTROL = 0x8100041D,
  755. DIKEYBOARD_A = 0x8100041E,
  756. DIKEYBOARD_S = 0x8100041F,
  757. DIKEYBOARD_D = 0x81000420,
  758. DIKEYBOARD_F = 0x81000421,
  759. DIKEYBOARD_G = 0x81000422,
  760. DIKEYBOARD_H = 0x81000423,
  761. DIKEYBOARD_J = 0x81000424,
  762. DIKEYBOARD_K = 0x81000425,
  763. DIKEYBOARD_L = 0x81000426,
  764. DIKEYBOARD_SEMICOLON = 0x81000427,
  765. DIKEYBOARD_APOSTROPHE = 0x81000428,
  766. DIKEYBOARD_GRAVE = 0x81000429, /* accent grave */
  767. DIKEYBOARD_LSHIFT = 0x8100042A,
  768. DIKEYBOARD_BACKSLASH = 0x8100042B,
  769. DIKEYBOARD_Z = 0x8100042C,
  770. DIKEYBOARD_X = 0x8100042D,
  771. DIKEYBOARD_C = 0x8100042E,
  772. DIKEYBOARD_V = 0x8100042F,
  773. DIKEYBOARD_B = 0x81000430,
  774. DIKEYBOARD_N = 0x81000431,
  775. DIKEYBOARD_M = 0x81000432,
  776. DIKEYBOARD_COMMA = 0x81000433,
  777. DIKEYBOARD_PERIOD = 0x81000434, /* . on main keyboard */
  778. DIKEYBOARD_SLASH = 0x81000435, /* / on main keyboard */
  779. DIKEYBOARD_RSHIFT = 0x81000436,
  780. DIKEYBOARD_MULTIPLY = 0x81000437, /* * on numeric keypad */
  781. DIKEYBOARD_LMENU = 0x81000438, /* left Alt */
  782. DIKEYBOARD_SPACE = 0x81000439,
  783. DIKEYBOARD_CAPITAL = 0x8100043A,
  784. DIKEYBOARD_F1 = 0x8100043B,
  785. DIKEYBOARD_F2 = 0x8100043C,
  786. DIKEYBOARD_F3 = 0x8100043D,
  787. DIKEYBOARD_F4 = 0x8100043E,
  788. DIKEYBOARD_F5 = 0x8100043F,
  789. DIKEYBOARD_F6 = 0x81000440,
  790. DIKEYBOARD_F7 = 0x81000441,
  791. DIKEYBOARD_F8 = 0x81000442,
  792. DIKEYBOARD_F9 = 0x81000443,
  793. DIKEYBOARD_F10 = 0x81000444,
  794. DIKEYBOARD_NUMLOCK = 0x81000445,
  795. DIKEYBOARD_SCROLL = 0x81000446, /* Scroll Lock */
  796. DIKEYBOARD_NUMPAD7 = 0x81000447,
  797. DIKEYBOARD_NUMPAD8 = 0x81000448,
  798. DIKEYBOARD_NUMPAD9 = 0x81000449,
  799. DIKEYBOARD_SUBTRACT = 0x8100044A , /* - on numeric keypad */
  800. DIKEYBOARD_NUMPAD4 = 0x8100044B ,
  801. DIKEYBOARD_NUMPAD5 = 0x8100044C ,
  802. DIKEYBOARD_NUMPAD6 = 0x8100044D ,
  803. DIKEYBOARD_ADD = 0x8100044E , /* + on numeric keypad */
  804. DIKEYBOARD_NUMPAD1 = 0x8100044F ,
  805. DIKEYBOARD_NUMPAD2 = 0x81000450 ,
  806. DIKEYBOARD_NUMPAD3 = 0x81000451 ,
  807. DIKEYBOARD_NUMPAD0 = 0x81000452 ,
  808. DIKEYBOARD_DECIMAL = 0x81000453 , /* . on numeric keypad */
  809. DIKEYBOARD_OEM_102 = 0x81000456 , /* < > | on UK/Germany keyboards */
  810. DIKEYBOARD_F11 = 0x81000457 ,
  811. DIKEYBOARD_F12 = 0x81000458 ,
  812. DIKEYBOARD_F13 = 0x81000464 , /* (NEC PC98) */
  813. DIKEYBOARD_F14 = 0x81000465 , /* (NEC PC98) */
  814. DIKEYBOARD_F15 = 0x81000466 , /* (NEC PC98) */
  815. DIKEYBOARD_KANA = 0x81000470 , /* (Japanese keyboard) */
  816. DIKEYBOARD_ABNT_C1 = 0x81000473 , /* / ? on Portugese (Brazilian) keyboards */
  817. DIKEYBOARD_CONVERT = 0x81000479 , /* (Japanese keyboard) */
  818. DIKEYBOARD_NOCONVERT = 0x8100047B , /* (Japanese keyboard) */
  819. DIKEYBOARD_YEN = 0x8100047D , /* (Japanese keyboard) */
  820. DIKEYBOARD_ABNT_C2 = 0x8100047E , /* Numpad . on Portugese (Brazilian) keyboards */
  821. DIKEYBOARD_NUMPADEQUALS = 0x8100048D , /* = on numeric keypad (NEC PC98) */
  822. DIKEYBOARD_PREVTRACK = 0x81000490 , /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */
  823. DIKEYBOARD_AT = 0x81000491 , /* (NEC PC98) */
  824. DIKEYBOARD_COLON = 0x81000492 , /* (NEC PC98) */
  825. DIKEYBOARD_UNDERLINE = 0x81000493 , /* (NEC PC98) */
  826. DIKEYBOARD_KANJI = 0x81000494 , /* (Japanese keyboard) */
  827. DIKEYBOARD_STOP = 0x81000495 , /* (NEC PC98) */
  828. DIKEYBOARD_AX = 0x81000496 , /* (Japan AX) */
  829. DIKEYBOARD_UNLABELED = 0x81000497 , /* (J3100) */
  830. DIKEYBOARD_NEXTTRACK = 0x81000499 , /* Next Track */
  831. DIKEYBOARD_NUMPADENTER = 0x8100049C , /* Enter on numeric keypad */
  832. DIKEYBOARD_RCONTROL = 0x8100049D ,
  833. DIKEYBOARD_MUTE = 0x810004A0 , /* Mute */
  834. DIKEYBOARD_CALCULATOR = 0x810004A1 , /* Calculator */
  835. DIKEYBOARD_PLAYPAUSE = 0x810004A2 , /* Play / Pause */
  836. DIKEYBOARD_MEDIASTOP = 0x810004A4 , /* Media Stop */
  837. DIKEYBOARD_VOLUMEDOWN = 0x810004AE , /* Volume - */
  838. DIKEYBOARD_VOLUMEUP = 0x810004B0 , /* Volume + */
  839. DIKEYBOARD_WEBHOME = 0x810004B2 , /* Web home */
  840. DIKEYBOARD_NUMPADCOMMA = 0x810004B3 , /* , on numeric keypad (NEC PC98) */
  841. DIKEYBOARD_DIVIDE = 0x810004B5 , /* / on numeric keypad */
  842. DIKEYBOARD_SYSRQ = 0x810004B7 ,
  843. DIKEYBOARD_RMENU = 0x810004B8 , /* right Alt */
  844. DIKEYBOARD_PAUSE = 0x810004C5 , /* Pause */
  845. DIKEYBOARD_HOME = 0x810004C7 , /* Home on arrow keypad */
  846. DIKEYBOARD_UP = 0x810004C8 , /* UpArrow on arrow keypad */
  847. DIKEYBOARD_PRIOR = 0x810004C9 , /* PgUp on arrow keypad */
  848. DIKEYBOARD_LEFT = 0x810004CB , /* LeftArrow on arrow keypad */
  849. DIKEYBOARD_RIGHT = 0x810004CD , /* RightArrow on arrow keypad */
  850. DIKEYBOARD_END = 0x810004CF , /* End on arrow keypad */
  851. DIKEYBOARD_DOWN = 0x810004D0 , /* DownArrow on arrow keypad */
  852. DIKEYBOARD_NEXT = 0x810004D1 , /* PgDn on arrow keypad */
  853. DIKEYBOARD_INSERT = 0x810004D2 , /* Insert on arrow keypad */
  854. DIKEYBOARD_DELETE = 0x810004D3 , /* Delete on arrow keypad */
  855. DIKEYBOARD_LWIN = 0x810004DB , /* Left Windows key */
  856. DIKEYBOARD_RWIN = 0x810004DC , /* Right Windows key */
  857. DIKEYBOARD_APPS = 0x810004DD , /* AppMenu key */
  858. DIKEYBOARD_POWER = 0x810004DE , /* System Power */
  859. DIKEYBOARD_SLEEP = 0x810004DF , /* System Sleep */
  860. DIKEYBOARD_WAKE = 0x810004E3 , /* System Wake */
  861. DIKEYBOARD_WEBSEARCH = 0x810004E5 , /* Web Search */
  862. DIKEYBOARD_WEBFAVORITES = 0x810004E6 , /* Web Favorites */
  863. DIKEYBOARD_WEBREFRESH = 0x810004E7 , /* Web Refresh */
  864. DIKEYBOARD_WEBSTOP = 0x810004E8 , /* Web Stop */
  865. DIKEYBOARD_WEBFORWARD = 0x810004E9 , /* Web Forward */
  866. DIKEYBOARD_WEBBACK = 0x810004EA , /* Web Back */
  867. DIKEYBOARD_MYCOMPUTER = 0x810004EB , /* My Computer */
  868. DIKEYBOARD_MAIL = 0x810004EC , /* Mail */
  869. DIKEYBOARD_MEDIASELECT = 0x810004ED , /* Media Select */
  870. } CONST_DIKEYBOARDFLAGS;
  871. [helpcontext(84162)]
  872. typedef enum CONST_DIMOUSEOFS {
  873. DIMOFS_X =0,
  874. DIMOFS_Y =4,
  875. DIMOFS_Z =8,
  876. DIMOFS_BUTTON0 =12,
  877. DIMOFS_BUTTON1 =13,
  878. DIMOFS_BUTTON2 =14,
  879. DIMOFS_BUTTON3 =15,
  880. DIMOFS_BUTTON4 =16,
  881. DIMOFS_BUTTON5 =17,
  882. DIMOFS_BUTTON6 =18,
  883. DIMOFS_BUTTON7 =19
  884. } CONST_DIMOUSEOFS;
  885. [helpcontext(84161)]
  886. typedef enum CONST_DIMOUSEFLAGS {
  887. DIMOUSE_XAXISAB = 0x82000200, // (= 0x82000200 |DIMOFS_X ) , /* X Axis-absolute: Some mice natively report absolute coordinates */
  888. DIMOUSE_YAXISAB = 0x82000204, // (= 0x82000200 |DIMOFS_Y ) , /* Y Axis-absolute: Some mice natively report absolute coordinates */
  889. DIMOUSE_XAXIS = 0x82000300, // (= 0x82000300 |DIMOFS_X ) , /* X Axis */
  890. DIMOUSE_YAXIS = 0x82000304, // (= 0x82000300 |DIMOFS_Y ) , /* Y Axis */
  891. DIMOUSE_WHEEL = 0x82000308, // (= 0x82000300 |DIMOFS_Z ) , /* Z Axis */
  892. DIMOUSE_BUTTON0 = 0x8200040C, // (= 0x82000400 |DIMOFS_BUTTON0) , /* Button 0 */
  893. DIMOUSE_BUTTON1 = 0x8200040D, // (= 0x82000400 |DIMOFS_BUTTON1) , /* Button 1 */
  894. DIMOUSE_BUTTON2 = 0x8200040E, // (= 0x82000400 |DIMOFS_BUTTON2) , /* Button 2 */
  895. DIMOUSE_BUTTON3 = 0x8200040F, // (= 0x82000400 |DIMOFS_BUTTON3) , /* Button 3 */
  896. DIMOUSE_BUTTON4 = 0x82000410, // (= 0x82000400 |DIMOFS_BUTTON4) , /* Button 4 */
  897. DIMOUSE_BUTTON5 = 0x82000411, // (= 0x82000400 |DIMOFS_BUTTON5) , /* Button 5 */
  898. DIMOUSE_BUTTON6 = 0x82000412, // (= 0x82000400 |DIMOFS_BUTTON6) , /* Button 6 */
  899. DIMOUSE_BUTTON7 = 0x82000413, // (= 0x82000400 |DIMOFS_BUTTON7) , /* Button 7 */
  900. } CONST_DIMOUSEFLAGS;
  901. [helpcontext(84169)]
  902. typedef enum CONST_DIVOICEFLAGS {
  903. DIVOICE_CHANNEL1 = 0x83000401,
  904. DIVOICE_CHANNEL2 = 0x83000402,
  905. DIVOICE_CHANNEL3 = 0x83000403,
  906. DIVOICE_CHANNEL4 = 0x83000404,
  907. DIVOICE_CHANNEL5 = 0x83000405,
  908. DIVOICE_CHANNEL6 = 0x83000406,
  909. DIVOICE_CHANNEL7 = 0x83000407,
  910. DIVOICE_CHANNEL8 = 0x83000408,
  911. DIVOICE_TEAM = 0x83000409,
  912. DIVOICE_ALL = 0x8300040A,
  913. DIVOICE_RECORDMUTE = 0x8300040B,
  914. DIVOICE_PLAYBACKMUTE = 0x8300040C,
  915. DIVOICE_TRANSMIT = 0x8300040D,
  916. DIVOICE_VOICECOMMAND = 0x83000410,
  917. } CONST_DIVOICEFLAGS;
  918. [helpcontext(84163)]
  919. typedef enum CONST_DINPUT {
  920. DIPROPRANGE_NOMIN =0x80000000,
  921. DIPROPRANGE_NOMAX =0x7FFFFFFF,
  922. DI_DEGREES = 100,
  923. DI_FFNOMINALMAX = 10000,
  924. DI_SECONDS = 1000000,
  925. // not needed hard coded in struct array
  926. // MAXCPOINTSNUM =8,
  927. // Not needed we dont have enumeration callbacks
  928. // DIENUM_STOP =0,
  929. // DIENUM_CONTINUE =1,
  930. /*
  931. * Flag to indicate that the dwReserved2 field of the JOYINFOEX structure
  932. * contains mini-driver specific data to be passed by VJoyD to the mini-
  933. * driver instead of doing a poll.
  934. */
  935. // JOY_PASSDRIVERDATA =0x10000000,
  936. /*
  937. * Hardware Setting indicating that the device is a headtracker
  938. */
  939. // JOY_HWS_ISHEADTRACKER =0x02000000,
  940. /*
  941. * Hardware Setting indicating that the VxD is used to replace
  942. * the standard analog polling
  943. */
  944. // JOY_HWS_ISGAMEPORTDRIVER =0x04000000,
  945. /*
  946. * Hardware Setting indicating that the driver needs a standard
  947. * gameport in order to communicate with the device.
  948. */
  949. // JOY_HWS_ISANALOGPORTDRIVER =0x08000000,
  950. /*
  951. * Hardware Setting indicating that VJoyD should not load this
  952. * driver, it will be loaded externally and will register with
  953. * VJoyD of it's own accord.
  954. */
  955. // JOY_HWS_AUTOLOAD =0x10000000,
  956. /*
  957. * Hardware Setting indicating that the driver acquires any
  958. * resources needed without needing a devnode through VJoyD.
  959. */
  960. // JOY_HWS_NODEVNODE =0x20000000,
  961. /*
  962. * Hardware Setting indicating that the VxD can be used as
  963. * a port 201h emulator.
  964. */
  965. // JOY_HWS_ISGAMEPORTEMULATOR =0x40000000,
  966. /*
  967. * Usage Setting indicating that the settings are volatile and
  968. * should be removed if still present on a reboot.
  969. */
  970. // JOY_US_VOLATILE =0x00000008,
  971. DIPROPAXISMODE_ABS =0,
  972. DIPROPAXISMODE_REL =1,
  973. DIPROPCALIBRATIONMODE_COOKED=0,
  974. DIPROPCALIBRATIONMODE_RAW=1,
  975. DIPROPAUTOCENTER_OFF =0,
  976. DIPROPAUTOCENTER_ON =1,
  977. DIEB_NOTRIGGER = 0xFFFFFFFF,
  978. //Added for bug #41819
  979. MAXCPOINTSNUM = MAXCPOINTSNUM_CDESC
  980. //End bug #41819
  981. } CONST_DINPUTCONSTANTS;
  982. [helpcontext(84136)]
  983. typedef enum CONST_DICOMMONDATAFORMATS
  984. {
  985. DIFORMAT_KEYBOARD =1,
  986. DIFORMAT_MOUSE =2,
  987. DIFORMAT_JOYSTICK =3,
  988. DIFORMAT_JOYSTICK2 =4,
  989. DIFORMAT_MOUSE2 =5,
  990. } CONST_DICOMMONDATAFORMATS;
  991. [helpcontext(84164)]
  992. typedef enum CONST_DINPUTERR{
  993. DI_OK = 0,
  994. DI_NOTATTACHED =1,
  995. //DI_BUFFEROVERFLOW =1, this has been remmapped
  996. DI_PROPNOEFFECT =1,
  997. DI_NOEFFECT =1,
  998. DI_POLLEDDEVICE =2,
  999. DI_DOWNLOADSKIPPED =3,
  1000. DI_EFFECTRESTARTED =4,
  1001. DI_SETTINGSNOTSAVED =11,
  1002. DI_TRUNCATED =8,
  1003. DI_TRUNCATEDANDRESTARTED =12,
  1004. DI_WRITEPROTECT =0x13,
  1005. DI_BUFFEROVERFLOW = 0x80040260,
  1006. //DIERR_INVALIDHANDLE = 0x80070006,
  1007. DIERR_OLDDIRECTINPUTVERSION = 0x8007047E,
  1008. DIERR_BETADIRECTINPUTVERSION = 0x80070481,
  1009. DIERR_BADDRIVERVER = 0x80070077,
  1010. DIERR_DEVICENOTREG = 0x80040154,
  1011. DIERR_NOTFOUND = 0x80070002,
  1012. DIERR_OBJECTNOTFOUND = 0x80070002,
  1013. DIERR_INVALIDPARAM = 5, //0x80070057,
  1014. DIERR_NOINTERFACE =430,// 0x80004002,
  1015. DIERR_GENERIC = 0x80004005,
  1016. DIERR_OUTOFMEMORY = 7, //0x8007000E,
  1017. DIERR_UNSUPPORTED = 445 ,//0x80004001,
  1018. DIERR_NOTINITIALIZED = 0x80070015,
  1019. DIERR_ALREADYINITIALIZED = 0x800704DF,
  1020. DIERR_INPUTLOST = 0x8007001E,
  1021. DIERR_ACQUIRED = 0x800700AA,
  1022. DIERR_NOTACQUIRED = 0x8007000C,
  1023. DIERR_NOAGGREGATION = 0x80004002,
  1024. DIERR_OTHERAPPHASPRIO = 0x80070005,
  1025. DIERR_READONLY = 0x80070005,
  1026. DIERR_HANDLEEXISTS = 0x80070005,
  1027. E_PENDING = 0x8000000A,
  1028. DIERR_INSUFFICIENTPRIVS = 0x80040200,
  1029. DIERR_DEVICEFULL = 0x80040201,
  1030. DIERR_MOREDATA = 0x80040202,
  1031. DIERR_NOTDOWNLOADED = 0x80040203,
  1032. DIERR_HASEFFECTS = 0x80040204,
  1033. DIERR_NOTEXCLUSIVEACQUIRED = 0x80040205,
  1034. DIERR_INCOMPLETEEFFECT = 0x80040206,
  1035. DIERR_NOTBUFFERED = 0x80040207,
  1036. DIERR_EFFECTPLAYING = 0x80040208,
  1037. DIERR_UNPLUGGED = 0x80040209,
  1038. DIERR_REPORTFULL= 0x8004020A,
  1039. DIERR_MAPFILEFAIL = 0x8004020B,
  1040. } CONST_DINPUTERR;
  1041. [helpcontext(84157)]
  1042. typedef enum CONST_DIJOYSTICKOFS {
  1043. DIJOFS_X =0,
  1044. DIJOFS_Y =4,
  1045. DIJOFS_Z =8,
  1046. DIJOFS_RX =12,
  1047. DIJOFS_RY =16,
  1048. DIJOFS_RZ =20,
  1049. DIJOFS_SLIDER0 =24,
  1050. DIJOFS_SLIDER1 =28,
  1051. DIJOFS_POV0 =32,
  1052. DIJOFS_POV1 =36,
  1053. DIJOFS_POV2 =40,
  1054. DIJOFS_POV3 =44,
  1055. DIJOFS_BUTTON0 =48,
  1056. DIJOFS_BUTTON1 =49,
  1057. DIJOFS_BUTTON2 =50,
  1058. DIJOFS_BUTTON3 =51,
  1059. DIJOFS_BUTTON4 =52,
  1060. DIJOFS_BUTTON5 =53,
  1061. DIJOFS_BUTTON6 =54,
  1062. DIJOFS_BUTTON7 =55,
  1063. DIJOFS_BUTTON8 =56,
  1064. DIJOFS_BUTTON9 =57,
  1065. DIJOFS_BUTTON10 =58,
  1066. DIJOFS_BUTTON11 =59,
  1067. DIJOFS_BUTTON12 =60,
  1068. DIJOFS_BUTTON13 =61,
  1069. DIJOFS_BUTTON14 =62,
  1070. DIJOFS_BUTTON15 =63,
  1071. DIJOFS_BUTTON16 =64,
  1072. DIJOFS_BUTTON17 =65,
  1073. DIJOFS_BUTTON18 =66,
  1074. DIJOFS_BUTTON19 =67,
  1075. DIJOFS_BUTTON20 =68,
  1076. DIJOFS_BUTTON21 =69,
  1077. DIJOFS_BUTTON22 =70,
  1078. DIJOFS_BUTTON23 =71,
  1079. DIJOFS_BUTTON24 =72,
  1080. DIJOFS_BUTTON25 =73,
  1081. DIJOFS_BUTTON26 =74,
  1082. DIJOFS_BUTTON27 =75,
  1083. DIJOFS_BUTTON28 =76,
  1084. DIJOFS_BUTTON29 =77,
  1085. DIJOFS_BUTTON30 =78,
  1086. DIJOFS_BUTTON31 =79
  1087. } CONST_DIJOYSTICKOFS;
  1088. [helpcontext(84149)]
  1089. typedef enum CONST_DIEFTFLAGS {
  1090. DIEFT_ALL = 0x00000000,
  1091. DIEFT_CONSTANTFORCE = 0x00000001,
  1092. DIEFT_RAMPFORCE = 0x00000002,
  1093. DIEFT_PERIODIC = 0x00000003,
  1094. DIEFT_CONDITION = 0x00000004,
  1095. DIEFT_CUSTOMFORCE = 0x00000005,
  1096. DIEFT_HARDWARE = 0x000000FF,
  1097. DIEFT_FFATTACK = 0x00000200,
  1098. DIEFT_FFFADE = 0x00000400,
  1099. DIEFT_SATURATION = 0x00000800,
  1100. DIEFT_POSNEGCOEFFICIENTS = 0x00001000,
  1101. DIEFT_POSNEGSATURATION = 0x00002000,
  1102. DIEFT_DEADBAND = 0x00004000,
  1103. DIEFT_STARTDELAY = 0x00008000,
  1104. //DIEFT_PREDEFMIN = 0x00000001,
  1105. //DIEFT_PREDEFMAX = 0x00000005,
  1106. //DIEFT_TYPEMASK = 0x000000FF,
  1107. //DIEFT_FORCEFEEDBACK = 0x00000100,
  1108. //DIEFT_VALIDFLAGS = 0x0000FE00,
  1109. //DIEFT_ENUMVALID = 0x040000FF,
  1110. } CONST_DIEFTFLAGS;
  1111. [helpcontext(84148)]
  1112. typedef enum CONST_DIEFFFLAGS {
  1113. DIEFF_OBJECTIDS = 0x00000001,
  1114. DIEFF_OBJECTOFFSETS = 0x00000002,
  1115. DIEFF_CARTESIAN = 0x00000010,
  1116. DIEFF_POLAR = 0x00000020,
  1117. DIEFF_SPHERICAL = 0x00000040,
  1118. //These flags are internal to DInput
  1119. //
  1120. //DIEFF_SPHERICAL = 0x00000040,
  1121. //DIEFFECT_MAXAXES =32,
  1122. //DIEFF_OBJECTMASK =3,
  1123. //DIEFF_ANGULAR =0x00000060,
  1124. //DIEFF_COORDMASK =0x00000070,
  1125. //DIEFF_REGIONANGULAR =0x00006000,
  1126. //DIEFF_REGIONCOORDMASK =0x00000070,
  1127. //DIEFF_VALID =0x00000073,
  1128. } CONST_DIEFFFLAGS;
  1129. [helpcontext(84152)]
  1130. typedef enum CONST_DIEPFLAGS {
  1131. DIEP_DURATION = 0x00000001,
  1132. DIEP_SAMPLEPERIOD = 0x00000002,
  1133. DIEP_GAIN = 0x00000004,
  1134. DIEP_TRIGGERBUTTON = 0x00000008,
  1135. DIEP_TRIGGERREPEATINTERVAL= 0x00000010,
  1136. DIEP_AXES = 0x00000020,
  1137. DIEP_DIRECTION = 0x00000040,
  1138. DIEP_ENVELOPE = 0x00000080,
  1139. DIEP_TYPESPECIFICPARAMS = 0x00000100,
  1140. DIEP_ALLPARAMS = 0x000003FF,
  1141. DIEP_START = 0x20000000,
  1142. DIEP_NORESTART = 0x40000000,
  1143. DIEP_NODOWNLOAD = 0x80000000,
  1144. //DIEP_NOTRIGGER = 0xFFFFFFFF,
  1145. DIEP_STARTDELAY = 0x00000200,
  1146. //DIEP_GETVALID = 0x000003FF,
  1147. //DIEP_SETVALID = 0xE00003FF,
  1148. //DIEP_USESOBJECTS = 0x00000028,
  1149. //DIEP_USESCOORDS = 0x00000040,
  1150. //DIEP_VALID = 0x80000001,
  1151. //DIEP_DRIVER = 0x00000001,
  1152. } CONST_DIEPFLAGS;
  1153. [helpcontext(84150)]
  1154. typedef enum CONST_DIEGESFLAGS {
  1155. DIEGES_PLAYING = 0x00000001,
  1156. DIEGES_EMULATED = 0x00000002
  1157. } CONST_DIEGESFLAGS;
  1158. [helpcontext(84153)]
  1159. typedef enum CONST_DIESFLAGS {
  1160. DIES_SOLO = 0x00000001,
  1161. DIES_NODOWNLOAD = 0x80000000
  1162. } CONST_DIESFLAGS;
  1163. [helpcontext(84168)]
  1164. typedef enum CONST_DISFFCFLAGS {
  1165. DISFFC_RESET = 0x00000001,
  1166. DISFFC_STOPALL = 0x00000002,
  1167. DISFFC_PAUSE = 0x00000004,
  1168. DISFFC_CONTINUE = 0x00000008,
  1169. DISFFC_SETACTUATORSON = 0x00000010,
  1170. DISFFC_SETACTUATORSOFF = 0x00000020,
  1171. } CONST_DISFFCFLAGS;
  1172. [helpcontext(84156)]
  1173. typedef enum CONST_DIGFFSFLAGS {
  1174. DIGFFS_EMPTY = 0x00000001,
  1175. DIGFFS_STOPPED = 0x00000002,
  1176. DIGFFS_PAUSED = 0x00000004,
  1177. DIGFFS_ACTUATORSON = 0x00000010,
  1178. DIGFFS_ACTUATORSOFF = 0x00000020,
  1179. DIGFFS_POWERON = 0x00000040,
  1180. DIGFFS_POWEROFF = 0x00000080,
  1181. DIGFFS_SAFETYSWITCHON = 0x00000100,
  1182. DIGFFS_SAFETYSWITCHOFF = 0x00000200,
  1183. DIGFFS_USERFFSWITCHON = 0x00000400,
  1184. DIGFFS_USERFFSWITCHOFF = 0x00000800,
  1185. DIGFFS_DEVICELOST = 0x80000000
  1186. } CONST_DIGFFSFLAGS;
  1187. [helpcontext(84167)]
  1188. typedef enum CONST_DISDDFLAGS {
  1189. DISDD_DEFAULT =0,
  1190. DISDD_CONTINUE = 1
  1191. } CONST_DISDDFLAGS;
  1192. [helpcontext(84137)]
  1193. typedef enum CONST_DICONDITIONFLAGS {
  1194. DICONDITION_USE_BOTH_AXES=1,
  1195. DICONDITION_USE_DIRECTION =2
  1196. } CONST_DICONDITIONFLAGS;
  1197. #endif
  1198. ///////////////////////////////////////////////////////////////////////////
  1199. //
  1200. // Direct Input Structures
  1201. //
  1202. ///////////////////////////////////////////////////////////////////////////
  1203. #ifdef C_ONLY
  1204. //replaced by object
  1205. [hidden, helpcontext(84849)]
  1206. typedef struct DIDEVICEINSTANCE_CDESC {
  1207. BSTR strGuidInstance;
  1208. BSTR strGuidProduct;
  1209. LONG lDevType;
  1210. BSTR strInstanceName;
  1211. BSTR strProductName;
  1212. BSTR strGuidFFDriver;
  1213. SHORT nUsagePage;
  1214. SHORT nUsage;
  1215. I_dxj_DirectInputDevice8 *device;
  1216. } DIDEVICEINSTANCE_CDESC;
  1217. //replaced by object
  1218. [hidden, helpcontext(84850)]
  1219. typedef struct DIDEVICEOBJECTINSTANCE_CDESC {
  1220. [hidden] LONG lSize;
  1221. BSTR strGuidType;
  1222. LONG lOfs;
  1223. CONST_DIDFTFLAGS lType;
  1224. CONST_DIDEVICEOBJINSTANCEFLAGS lFlags;
  1225. BSTR strName;
  1226. LONG lFFMaxForce;
  1227. LONG lFFForceResolution;
  1228. SHORT nCollectionNumber;
  1229. SHORT nDesignatorIndex;
  1230. SHORT nUsagePage;
  1231. SHORT nUsage;
  1232. LONG lDimension;
  1233. SHORT nExponent;
  1234. SHORT nReserved;
  1235. } DIDEVICEOBJECTINSTANCE_CDESC;
  1236. #endif
  1237. //
  1238. // DInput
  1239. //
  1240. [helpcontext(84122)]
  1241. typedef struct DIMOUSESTATE_CDESC {
  1242. LONG lX;
  1243. LONG lY;
  1244. LONG lZ;
  1245. BYTE Buttons[4];
  1246. } DIMOUSESTATE_CDESC;
  1247. [helpcontext(84123)]
  1248. typedef struct DIMOUSESTATE2_CDESC {
  1249. LONG lX;
  1250. LONG lY;
  1251. LONG lZ;
  1252. BYTE Buttons[8];
  1253. } DIMOUSESTATE2_CDESC;
  1254. [helpcontext(405100)]
  1255. typedef struct DIDEVCAPS_CDESC {
  1256. [hidden] LONG lSize;
  1257. CONST_DIDEVCAPSFLAGS lFlags;
  1258. LONG lDevType;
  1259. LONG lAxes;
  1260. LONG lButtons;
  1261. LONG lPOVs;
  1262. LONG lFFSamplePeriod;
  1263. LONG lFFMinTimeResolution;
  1264. LONG lFirmwareRevision;
  1265. LONG lHardwareRevision;
  1266. LONG lDriverVersion;
  1267. } DIDEVCAPS_CDESC;
  1268. [helpcontext(84116)]
  1269. typedef struct DIDEVICEOBJECTDATA_CDESC{
  1270. LONG lOfs;
  1271. LONG lData;
  1272. LONG lTimeStamp;
  1273. LONG lSequence;
  1274. LONG lUserData;
  1275. } DIDEVICEOBJECTDATA_CDESC;
  1276. [helpcontext(84128)]
  1277. typedef struct DIPROPRANGE_CDESC {
  1278. LONG lObj;
  1279. LONG lHow;
  1280. LONG lMin;
  1281. LONG lMax;
  1282. } DIPROPRANGE_CDESC;
  1283. [helpcontext(84129)]
  1284. typedef struct DIPROPSTRING_CDESC {
  1285. LONG lObj;
  1286. LONG lHow;
  1287. BSTR PropString;
  1288. } DIPROPSTRING_CDESC;
  1289. [helpcontext(84126)]
  1290. typedef struct DIPROPGUIDANDPATH_CDESC {
  1291. LONG lObj;
  1292. LONG lHow;
  1293. BSTR Guid;
  1294. BSTR Path;
  1295. } DIPROPGUIDANDPATH_CDESC;
  1296. [helpcontext(84127)]
  1297. typedef struct DIPROPLONG_CDESC {
  1298. LONG lObj;
  1299. LONG lHow;
  1300. LONG lData;
  1301. } DIPROPLONG_CDESC;
  1302. //Added for bug #41819
  1303. typedef struct CPOINT_CDESC {
  1304. LONG lp;
  1305. LONG dwLog;
  1306. } CPOINT_CDESC;
  1307. typedef struct DIPROPCPOINTS_CDESC {
  1308. LONG lObj;
  1309. LONG lHow;
  1310. LONG dwCPointsNum;
  1311. CPOINT_CDESC cp[MAXCPOINTSNUM_CDESC];
  1312. } DIPROPCPOINTS_CDESC;
  1313. typedef struct DIPROPPOINTER_CDESC {
  1314. LONG lObj;
  1315. LONG lHow;
  1316. LONG uData;
  1317. } DIPROPPOINTER_CDESC;
  1318. //End bug #41819
  1319. [helpcontext(84124)]
  1320. typedef struct DIOBJECTDATAFORMAT_CDESC {
  1321. BSTR strGuid;
  1322. LONG lOfs;
  1323. CONST_DIDFTFLAGS lType;
  1324. CONST_DIDEVICEOBJINSTANCEFLAGS lFlags;
  1325. } DIOBJECTDATAFORMAT_CDESC;
  1326. [helpcontext(405600)]
  1327. typedef struct DIDATAFORMAT_CDESC {
  1328. [hidden] LONG lSize;
  1329. LONG lObjSize;
  1330. CONST_DIDATAFORMATFLAGS lFlags;
  1331. LONG dataSize;
  1332. LONG numObjs;
  1333. [hidden] LONG pData;
  1334. } DIDATAFORMAT_CDESC;
  1335. [helpcontext(84106)]
  1336. typedef struct DIACTION_CDESC {
  1337. LONG lAppData;
  1338. LONG lSemantic;
  1339. LONG lFlags;
  1340. BSTR ActionName;
  1341. [hidden] DXGUID_CDESC guidInstance;
  1342. LONG lObjId;
  1343. LONG lHow;
  1344. } DIACTION_CDESC;
  1345. [helpcontext(84107)]
  1346. typedef struct DIACTIONFORMAT_CDESC {
  1347. [hidden] LONG lActionSize;
  1348. LONG lDataSize;
  1349. BSTR ActionMapName;
  1350. BSTR guidActionMap;
  1351. LONG lGenre;
  1352. LONG lAxisMin;
  1353. LONG lAxisMax;
  1354. LONG lBufferSize;
  1355. LONG lActionCount;
  1356. SAFEARRAY(DIACTION_CDESC) ActionArray;
  1357. } DIACTIONFORMAT_CDESC;
  1358. [helpcontext(84108)]
  1359. typedef struct DICOLORSET_CDESC {
  1360. LONG cTextFore;
  1361. LONG cTextHighlight;
  1362. LONG cCalloutLine;
  1363. LONG cCalloutHighlight;
  1364. LONG cBorder;
  1365. LONG cControlFill;
  1366. LONG cHighlightFill;
  1367. LONG cAreaFill;
  1368. } DICOLORSET_CDESC;
  1369. [helpcontext(84118)]
  1370. typedef struct DICONFIGUREDEVICESPARAMS_CDESC {
  1371. LONG UserCount;
  1372. SAFEARRAY(BSTR) UserNames;
  1373. LONG FormatCount;
  1374. SAFEARRAY(DIACTIONFORMAT_CDESC) ActionFormats;
  1375. #ifdef _WIN64
  1376. HWND hwnd;
  1377. #else
  1378. LONG hwnd;
  1379. #endif
  1380. DICOLORSET_CDESC dics;
  1381. IUnknown *DDSTarget;
  1382. } DICONFIGUREDEVICESPARAMS_CDESC;
  1383. [helpcontext(84121)]
  1384. typedef struct DIKEYBOARDSTATE_CDESC {
  1385. Byte key[256];
  1386. } DIKEYBOARDSTATE_CDESC;
  1387. [helpcontext(84119)]
  1388. typedef struct DIJOYSTATE_CDESC {
  1389. LONG x;
  1390. LONG y;
  1391. LONG z;
  1392. LONG rx;
  1393. LONG ry;
  1394. LONG rz;
  1395. LONG slider[2];
  1396. LONG POV[4];
  1397. Byte buttons[32];
  1398. } DIJOYSTATE_CDESC;
  1399. [helpcontext(84120)]
  1400. typedef struct DIJOYSTATE2_CDESC {
  1401. LONG x;
  1402. LONG y;
  1403. LONG z;
  1404. LONG rx;
  1405. LONG ry;
  1406. LONG rz;
  1407. LONG slider[2];
  1408. LONG POV[4];
  1409. Byte buttons[128];
  1410. LONG vx;
  1411. LONG vy;
  1412. LONG vz;
  1413. LONG vrx;
  1414. LONG vry;
  1415. LONG vrz;
  1416. LONG vslider[2];
  1417. LONG ax;
  1418. LONG ay;
  1419. LONG az;
  1420. LONG arx;
  1421. LONG ary;
  1422. LONG arz;
  1423. LONG aslider[2];
  1424. LONG fx;
  1425. LONG fy;
  1426. LONG fz;
  1427. LONG frx;
  1428. LONG fry;
  1429. LONG frz;
  1430. LONG fslider[2];
  1431. } DIJOYSTATE2_CDESC;
  1432. [helpcontext(84818)]
  1433. typedef struct DIENVELOPE_CDESC {
  1434. [hidden] LONG lSize;
  1435. LONG lAttackLevel;
  1436. LONG lAttackTime;
  1437. LONG lFadeLevel;
  1438. LONG lFadeTime;
  1439. } DIENVELOPE_CDESC;
  1440. [helpcontext(84130)]
  1441. typedef struct DIRAMPFORCE_CDESC {
  1442. LONG lRangeStart; //ramp force
  1443. LONG lRangeEnd; //ramp force
  1444. } DIRAMPFORCE_CDESC;
  1445. [helpcontext(84125)]
  1446. typedef struct DIPERIODICFORCE_CDESC {
  1447. LONG lMagnitude; //periodic
  1448. LONG lOffset; //periodic
  1449. LONG lPhase; //periodic
  1450. LONG lPeriod; //periodic
  1451. } DIPERIODICFORCE_CDESC;
  1452. [helpcontext(408000)]
  1453. typedef struct DICONDITION_CDESC {
  1454. LONG lOffset; //condition
  1455. LONG lPositiveCoefficient; //condition
  1456. LONG lNegativeCoefficient; //condition
  1457. LONG lPositiveSaturation; //condition
  1458. LONG lNegativeSaturation; //condition
  1459. LONG lDeadBand; //condition
  1460. //VARIANT_BOOL bDirectional; //condition
  1461. } DICONDITION_CDESC;
  1462. [helpcontext(84111)]
  1463. typedef struct DICONSTANTFORCE_CDESC {
  1464. LONG lMagnitude;
  1465. } DICONSTANTFORCE_CDESC;
  1466. //replaced by object
  1467. [hidden, helpcontext(84853)]
  1468. typedef struct DIAXISOFFSETS_CDESC{
  1469. LONG x;
  1470. LONG y;
  1471. } DIAXISOFFSETS_CDESC;
  1472. [helpcontext(84117)]
  1473. typedef struct DIEFFECT_CDESC {
  1474. [hidden] LONG dwSize;
  1475. LONG lFlags; //dwTriggerButton and rgdwAxes
  1476. //use DIEFF_OBJECTIDS
  1477. // DIEFF_OBJECTOFFSETS
  1478. //rglDirection
  1479. //depends DIEFF_CARTESIAN
  1480. // DIEFF_POLAR
  1481. // DIEFF_SPHERICAL
  1482. LONG lDuration; //durration of the effect
  1483. LONG lSamplePeriod; //period
  1484. LONG lGain; //magnitude???
  1485. LONG lTriggerButton; //DIEFF_OBJECTIDS
  1486. LONG lTriggerRepeatInterval;
  1487. [hidden] LONG cAxes; //4
  1488. [hidden] LONG lprgdwAxes; //DIEFF_OBJECTIDS
  1489. //
  1490. [hidden] LONG lprglDirection;
  1491. [hidden] LONG lpEnvelope;
  1492. [hidden] LONG cbTypeSpecificParams;
  1493. [hidden] LONG lpvTypeSpecificParams;
  1494. LONG lStartDelay;
  1495. LONG x; // x
  1496. LONG y; // y
  1497. DIRAMPFORCE_CDESC rampForce;
  1498. DIPERIODICFORCE_CDESC periodicForce;
  1499. DICONSTANTFORCE_CDESC constantForce;
  1500. DICONDITION_CDESC conditionX;
  1501. DICONDITION_CDESC conditionY;
  1502. CONST_DICONDITIONFLAGS conditionFlags;
  1503. BOOL bUseEnvelope;
  1504. DIENVELOPE_CDESC envelope;
  1505. [hidden] DIAXISOFFSETS_CDESC axisOffsets;
  1506. } DIEFFECT_CDESC;
  1507. [helpcontext(84114)]
  1508. typedef struct DIDEVICEIMAGEINFO_CDESC {
  1509. BSTR ImagePath;
  1510. LONG Flags;
  1511. LONG ViewID;
  1512. RECT_CDESC OverlayRect;
  1513. LONG ObjId;
  1514. LONG ValidPts;
  1515. POINT_CDESC CalloutLine[5];
  1516. RECT_CDESC CalloutRect;
  1517. LONG TextAlign;
  1518. } DIDEVICEIMAGEINFO_CDESC;
  1519. [helpcontext(84115)]
  1520. typedef struct DIDEVICEIMAGEINFOHEADER_CDESC
  1521. {
  1522. LONG Views;
  1523. LONG Buttons;
  1524. LONG Axes;
  1525. LONG POVs;
  1526. LONG ImageCount;
  1527. SAFEARRAY(DIDEVICEIMAGEINFO_CDESC) Images;
  1528. } DIDEVICEIMAGEINFOHEADER_CDESC;
  1529. ///////////////////////////////////////////////////////////////////////////
  1530. //
  1531. // Direct Input Interfaces
  1532. //
  1533. ///////////////////////////////////////////////////////////////////////////
  1534. [
  1535. object,
  1536. uuid(819D20C1-8AD2-11d3-AC85-00C04FC2C602),
  1537. helpstring("I_dxj_DirectInput8 Interface"),
  1538. pointer_default(unique),
  1539. local,
  1540. helpcontext(313800)
  1541. ]
  1542. interface I_dxj_DirectInput8 : IUnknown
  1543. {
  1544. import "oaidl.idl";
  1545. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1546. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1547. [helpcontext(84029)] HRESULT createDevice([in] BSTR guid, [out,retval] I_dxj_DirectInputDevice8 **dev);
  1548. [helpcontext(84027)] HRESULT getDIDevices([in] CONST_DI8DEVICETYPE deviceType, [in] CONST_DIENUMDEVICESFLAGS flags, [out,retval] I_dxj_DIEnumDevices8 **retVal);
  1549. [helpcontext(84026)] HRESULT GetDeviceStatus([in] BSTR guid, [out,retval] VARIANT_BOOL *status);
  1550. #ifdef _WIN64
  1551. [helpcontext(84028)] HRESULT RunControlPanel([in] HWND hwndOwner);
  1552. #else
  1553. [helpcontext(84028)] HRESULT RunControlPanel([in] LONG hwndOwner);
  1554. #endif
  1555. [helpcontext(84025)] HRESULT getDevicesBySemantics([in] BSTR str1, [in] DIACTIONFORMAT_CDESC *format, [in] LONG flags, [out,retval] I_dxj_DIEnumDevices8 **ret);
  1556. [helpcontext(84023)] HRESULT ConfigureDevices (
  1557. #ifdef _WIN64
  1558. [in] HANDLE hEvent,
  1559. #else
  1560. [in] LONG hEvent,
  1561. #endif
  1562. [in] DICONFIGUREDEVICESPARAMS_CDESC *CDParams,
  1563. [in] LONG flags);
  1564. //Do we need Find Device?
  1565. };
  1566. [
  1567. object,
  1568. uuid(819D20C2-8AD2-11d3-AC85-00C04FC2C602),,
  1569. helpstring("I_dxj_DirectInputDeviceInstance8 Interface"),
  1570. pointer_default(unique),
  1571. local,
  1572. helpcontext(314000)
  1573. ]
  1574. interface I_dxj_DirectInputDeviceInstance8 : IUnknown
  1575. {
  1576. [helpcontext(84066)] HRESULT getGuidInstance([out,retval] BSTR *ret);
  1577. [helpcontext(84067)] HRESULT getGuidProduct([out,retval] BSTR *ret);
  1578. [helpcontext(84069)] HRESULT getProductName([out,retval] BSTR *ret);
  1579. [helpcontext(84068)] HRESULT getInstanceName([out,retval] BSTR *ret);
  1580. [helpcontext(84065)] HRESULT getGuidFFDriver([out,retval] BSTR *ret);
  1581. [helpcontext(84071)] HRESULT getUsagePage([out,retval] SHORT *ret);
  1582. [helpcontext(84070)] HRESULT getUsage([out,retval] SHORT *ret);
  1583. [helpcontext(84064)] HRESULT getDevType([out,retval] LONG *ret);
  1584. };
  1585. [
  1586. object,
  1587. uuid(9F76FA05-8E92-11d1-8808-00C04FC2C602),
  1588. helpstring("I_dxj_DirectInputDeviceObjectInstance Interface"),
  1589. pointer_default(unique),
  1590. local,
  1591. helpcontext(314200)
  1592. ]
  1593. interface I_dxj_DirectInputDeviceObjectInstance : IUnknown
  1594. {
  1595. [helpcontext(84078)] HRESULT getGuidType([out,retval] BSTR *ret);
  1596. [helpcontext(84080)] HRESULT getOfs([out,retval] LONG *ret);
  1597. [helpcontext(84081)] HRESULT getType([out,retval] LONG *ret);
  1598. [helpcontext(84077)] HRESULT getFlags([out,retval] CONST_DIDEVICEOBJINSTANCEFLAGS *ret);
  1599. [helpcontext(84079)] HRESULT getName([out,retval] BSTR *ret);
  1600. [helpcontext(84073)] HRESULT getCollectionNumber([out,retval] SHORT *ret);
  1601. [helpcontext(84074)] HRESULT getDesignatorIndex([out,retval] SHORT *ret);
  1602. [helpcontext(84083)] HRESULT getUsagePage([out,retval] SHORT *ret);
  1603. [helpcontext(84082)] HRESULT getUsage([out,retval] SHORT *ret);
  1604. [helpcontext(84075)] HRESULT getDimension([out,retval] LONG *ret);
  1605. [helpcontext(84076)] HRESULT getExponent([out,retval] SHORT *ret);
  1606. };
  1607. #if 0
  1608. [
  1609. object,
  1610. uuid(952E7826-33B4-4f62-92D4-AB7F15D26748),
  1611. helpstring("I_dxj_DirectInputFileEffects8 Interface"),
  1612. pointer_default(unique),
  1613. local,
  1614. helpcontext(94400)
  1615. ]
  1616. interface I_dxj_DirectInputFileEffects8 : IUnknown
  1617. {
  1618. [helpcontext(81076)] HRESULT GetCount([out,retval] LONG *c);
  1619. [helpcontext(80076)] HRESULT GetName([in] LONG,[out,retval] BSTR *ret);
  1620. [helpcontext(80476)] HRESULT GetEffect([in] LONG index, [out] DIEFFECT_CDESC *effect);
  1621. [helpcontext(80176)] HRESULT GetGuid([in] LONG index, [out,retval] BSTR *ret);
  1622. [helpcontext(80276)] HRESULT AddEffect([in] BSTR name, [in] BSTR guid,[in] DIEFFECT_CDESC *effect);
  1623. [helpcontext(80376)] HRESULT Empty();
  1624. }
  1625. #endif
  1626. [
  1627. object,
  1628. uuid(819D20C3-8AD2-11d3-AC85-00C04FC2C602),
  1629. helpstring("I_dxj_DirectInputDevice8 Interface"),
  1630. pointer_default(unique),
  1631. local,
  1632. helpcontext(314400)
  1633. ]
  1634. interface I_dxj_DirectInputDevice8 : IUnknown
  1635. {
  1636. import "oaidl.idl";
  1637. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1638. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1639. [helpcontext(84030)] HRESULT acquire();
  1640. [helpcontext(84038)] HRESULT getDeviceObjectsEnum([in] CONST_DIDFTFLAGS flags,[out,retval] I_dxj_DIEnumDeviceObjects **ppret);
  1641. [helpcontext(84035)] HRESULT getCapabilities([in,out] DIDEVCAPS_CDESC *caps);
  1642. [helpcontext(84036)] HRESULT getDeviceData( [in,out] SAFEARRAY(DIDEVICEOBJECTDATA_CDESC) *deviceObjectDataArray,[in] CONST_DIDGDDFLAGS flags,[out,retval] LONG *c);
  1643. [helpcontext(84363)] HRESULT getDeviceInfo([out,retval] I_dxj_DirectInputDeviceInstance8 **deviceInstance);
  1644. [helpcontext(84042)] HRESULT getDeviceStateKeyboard ([in,out] DIKEYBOARDSTATE_CDESC *state);
  1645. [helpcontext(84043)] HRESULT getDeviceStateMouse ([in,out] DIMOUSESTATE_CDESC *state);
  1646. [helpcontext(84044)] HRESULT getDeviceStateMouse2 ([in,out] DIMOUSESTATE2_CDESC *state);
  1647. [helpcontext(84040)] HRESULT getDeviceStateJoystick ([in,out] DIJOYSTATE_CDESC *state);
  1648. [helpcontext(84041)] HRESULT getDeviceStateJoystick2 ([in,out] DIJOYSTATE2_CDESC *state);
  1649. [helpcontext(84039)] HRESULT getDeviceState([in] LONG cb, [in] void* state);
  1650. [helpcontext(84072)] HRESULT getObjectInfo( [in] LONG obj, [in] CONST_DIPHFLAGS how, [out,retval] I_dxj_DirectInputDeviceObjectInstance **ret);
  1651. [helpcontext(84050)] HRESULT getProperty([in] BSTR guid,[out] void *propertyInfo);
  1652. #ifdef _WIN64
  1653. [helpcontext(84052)] HRESULT runControlPanel([in] HWND hwnd);
  1654. [helpcontext(84057)] HRESULT setCooperativeLevel([in] HWND hwnd, [in] CONST_DISCLFLAGS flags);
  1655. #else
  1656. [helpcontext(84052)] HRESULT runControlPanel([in] LONG hwnd);
  1657. [helpcontext(84057)] HRESULT setCooperativeLevel([in] LONG hwnd, [in] CONST_DISCLFLAGS flags);
  1658. #endif
  1659. [helpcontext(84056)] HRESULT setCommonDataFormat([in] CONST_DICOMMONDATAFORMATS format);
  1660. [helpcontext(84058)] HRESULT setDataFormat([in] DIDATAFORMAT_CDESC *format,SAFEARRAY(DIOBJECTDATAFORMAT_CDESC) * formatArray);
  1661. #ifdef _WIN64
  1662. [helpcontext(84059)] HRESULT setEventNotification([in] HANDLE hEvent);
  1663. #else
  1664. [helpcontext(84059)] HRESULT setEventNotification([in] LONG hEvent);
  1665. #endif
  1666. [helpcontext(84360)] HRESULT setProperty([in] BSTR guid,[in] void *propertyInfo);
  1667. [helpcontext(84361)] HRESULT unacquire();
  1668. [helpcontext(84051)] HRESULT poll();
  1669. [helpcontext(84033)] HRESULT createEffect(
  1670. [in] BSTR effectGuid,
  1671. [in] DIEFFECT_CDESC *effectinfo,
  1672. [out,retval] I_dxj_DirectInputEffect **ret);
  1673. [helpcontext(84032)] HRESULT createCustomEffect(
  1674. [in] DIEFFECT_CDESC *effectinfo,
  1675. [in] LONG channels,
  1676. [in] LONG samplePeriod,
  1677. [in] LONG nSamples,
  1678. [in] SAFEARRAY(LONG) *sampledata,
  1679. [out,retval] I_dxj_DirectInputEffect **ret);
  1680. [helpcontext(84053)] HRESULT sendDeviceData([in] LONG count,[in] SAFEARRAY(DIDEVICEOBJECTDATA_CDESC) *data, [in] CONST_DISDDFLAGS flags, [out,retval] LONG *retcount);
  1681. [helpcontext(84054)] HRESULT sendForceFeedbackCommand([in] CONST_DISFFCFLAGS flags);
  1682. [helpcontext(84046)] HRESULT getForceFeedbackState([out,retval] CONST_DIGFFSFLAGS *state);
  1683. [helpcontext(84099)] HRESULT getEffectsEnum([in] CONST_DIEFTFLAGS effType,[out,retval] I_dxj_DirectInputEnumEffects **ret);
  1684. [helpcontext(84031)] HRESULT BuildActionMap([in,out] DIACTIONFORMAT_CDESC *format, [in] BSTR username, [in] LONG flags );
  1685. [helpcontext(84055)] HRESULT SetActionMap([in,out] DIACTIONFORMAT_CDESC *format, [in] BSTR username, [in] LONG flags );
  1686. [helpcontext(84047)] HRESULT GetImageInfo([out] DIDEVICEIMAGEINFOHEADER_CDESC *info);
  1687. [helpcontext(84048)] HRESULT GetImageInfoCount([out,retval] LONG *c);
  1688. [helpcontext(84062)] HRESULT WriteEffectToFile( [in] BSTR filename,[in] LONG flags, [in] BSTR guid, [in] BSTR name, [in] DIEFFECT_CDESC *CoverEffect);
  1689. [helpcontext(84084)] HRESULT CreateEffectFromFile([in] BSTR filename, [in] LONG flags, [in] BSTR effectName,[out,retval] I_dxj_DirectInputEffect **ret);
  1690. };
  1691. [
  1692. object,
  1693. uuid(BCAA7DA9-F7EF-11d2-93FD-00C04FC2C602),
  1694. helpstring("I_dxj_DirectInputEffect Interface"),
  1695. pointer_default(unique),
  1696. local,
  1697. helpcontext(314600)
  1698. ]
  1699. interface I_dxj_DirectInputEffect : IUnknown
  1700. {
  1701. import "oaidl.idl";
  1702. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1703. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1704. [helpcontext(84085)] HRESULT download();
  1705. [helpcontext(84086)] HRESULT getEffectGuid([out,retval] BSTR *guid);
  1706. [helpcontext(84087)] HRESULT getEffectStatus([out,retval] LONG *ret);
  1707. [helpcontext(84890)] HRESULT start([in] LONG iterations, [in] LONG flags);
  1708. [helpcontext(84891)] HRESULT stop();
  1709. [helpcontext(84892)] HRESULT unload();
  1710. [helpcontext(84089)] HRESULT setParameters([in] DIEFFECT_CDESC *effectinfo,[in] CONST_DIEPFLAGS flags);
  1711. [helpcontext(84088)] HRESULT getParameters([in,out] DIEFFECT_CDESC *effectinfo);
  1712. };
  1713. [
  1714. object,
  1715. uuid(BCAA7DAA-F7EF-11d2-93FD-00C04FC2C602),
  1716. helpstring("I_dxj_DirectInputEnumEffects Interface"),
  1717. pointer_default(unique),
  1718. local,
  1719. helpcontext(314800)
  1720. ]
  1721. interface I_dxj_DirectInputEnumEffects : IUnknown
  1722. {
  1723. import "oaidl.idl";
  1724. [helpcontext(84100)] HRESULT getCount([out,retval] LONG *ret);
  1725. [helpcontext(84102)] HRESULT getEffectGuid([in] LONG i,[out,retval] BSTR *ret);
  1726. [helpcontext(84105)] HRESULT getType([in] LONG i,[out,retval] CONST_DIEFTFLAGS *ret);
  1727. [helpcontext(84104)] HRESULT getStaticParams([in] LONG i,[out,retval] CONST_DIEPFLAGS *ret);
  1728. [helpcontext(84101)] HRESULT getDynamicParams([in] LONG i,[out,retval] CONST_DIEPFLAGS *ret);
  1729. [helpcontext(84103)] HRESULT getName([in] LONG i, [out,retval] BSTR *ret);
  1730. };
  1731. [
  1732. object,
  1733. uuid(9F76FA08-8E92-11d1-8808-00C04FC2C602),
  1734. helpstring("I_dxj_DIEnumDeviceObjects Interface"),
  1735. pointer_default(unique),
  1736. local,
  1737. helpcontext(315000)
  1738. ]
  1739. interface I_dxj_DIEnumDeviceObjects : IUnknown
  1740. {
  1741. import "oaidl.idl";
  1742. [helpcontext(84095)] HRESULT getItem( [in]LONG index, [out,retval] I_dxj_DirectInputDeviceObjectInstance **info);
  1743. [helpcontext(84394)] HRESULT getCount([out,retval]LONG *count);
  1744. };
  1745. [
  1746. object,
  1747. uuid(819D20C4-8AD2-11d3-AC85-00C04FC2C602),
  1748. helpstring("I_dxj_DIEnumDevices8 Interface"),
  1749. pointer_default(unique),
  1750. local,
  1751. helpcontext(315200)
  1752. ]
  1753. interface I_dxj_DIEnumDevices8 : IUnknown
  1754. {
  1755. import "oaidl.idl";
  1756. [helpcontext(84098)] HRESULT getItem( [in]LONG index, [out,retval] I_dxj_DirectInputDeviceInstance8 **info);
  1757. [helpcontext(84097)] HRESULT getCount([out,retval]LONG *count);
  1758. };