windows-nt/Source/XPSP1/NT/multimedia/directx/dxvb/dx8vb/dii.idl
2020-09-26 16:20:57 +08:00

2048 lines
70 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1999
//
// File: dii.idl
//
//--------------------------------------------------------------------------
// TODO evaluate if these issues are important
// NOTE no DICUSTOMFORCE STRUCTURE
// NOTE need some way to fill out DIFILEEFFECT
// NOTE we are not using DIPROPPOINTER do we need to be
// NOTE we are not using DIPROPCAL do we need to be
// NOTE we are not using DIPROPGUIDANDPATH do we need to be
// NOTE we are not using DIPROPGUIDSTRING do we need to be
// NOTE we are not using DIPROPCPOINTS do we need to be
// NOTE we are not using CPOINT do we need to be
#ifdef VB_ONLY
#define I_dxj_DirectInput8 DirectInput8
#define I_dxj_DirectInputDeviceInstance8 DirectInputDeviceInstance8
#define I_dxj_DirectInputDeviceObjectInstance DirectInputDeviceObjectInstance
#define I_dxj_DirectInputDevice8 DirectInputDevice8
#define I_dxj_DirectInputEffect DirectInputEffect
#define I_dxj_DirectInputEnumEffects DirectInputEnumEffects
#define I_dxj_DIEnumDeviceObjects DirectInputEnumDeviceObjects
#define I_dxj_DIEnumDevices8 DirectInputEnumDevices8
#define DIDEVCAPS_CDESC DIDEVCAPS
#define DIDEVICEOBJECTDATA_CDESC DIDEVICEOBJECTDATA
#define DIPROPRANGE_CDESC DIPROPRANGE
#define DIPROPLONG_CDESC DIPROPLONG
#define DIOBJECTDATAFORMAT_CDESC DIOBJECTDATAFORMAT
#define DIDATAFORMAT_CDESC DIDATAFORMAT
#define DIACTION_CDESC DIACTION
#define DIACTIONFORMAT_CDESC DIACTIONFORMAT
#define DIMOUSESTATE_CDESC DIMOUSESTATE
#define DIMOUSESTATE2_CDESC DIMOUSESTATE2
#define DIKEYBOARDSTATE_CDESC DIKEYBOARDSTATE
#define DIJOYSTATE_CDESC DIJOYSTATE
#define DIJOYSTATE2_CDESC DIJOYSTATE2
#define DICONDITION_CDESC DICONDITION
#define DICONSTANTFORCE_CDESC DICONSTANTFORCE
#define DIEFFECT_CDESC DIEFFECT
#define DIENVELOPE_CDESC DIENVELOPE
#define DIPERIODICFORCE_CDESC DIPERIODICFORCE
#define DIRAMPFORCE_CDESC DIRAMPFORCE
#define DICOLORSET_CDESC DICOLORSET
#define DICONFIGUREDEVICESPARAMS_CDESC DICONFIGUREDEVICESPARAMS
#define DIDEVICEIMAGEINFO_CDESC DIDEVICEIMAGEINFO
#define DIDEVICEIMAGEINFOHEADER_CDESC DIDEVICEIMAGEINFOHEADER
#define DIPROPGUIDANDPATH_CDESC DIPROPGUIDANDPATH
#define DIPROPSTRING_CDESC DIPROPSTRING
//Bug #41819
#define CPOINT_CDESC CPOINT
#define DIPROPCPOINTS_CDESC DIPROPCPOINTS
#define DIPROPPOINTER_CDESC DIPROPPOINTER
//End Bug #41819
//Renamed for VB readability
#define createDevice CreateDevice
#define getDIDevices GetDIDevices
#define getDevicesBySemantics GetDevicesBySemantics
#define runControlPanel RunControlPanel
#define getGuidInstance GetGuidInstance
#define getGuidProduct GetGuidProduct
#define getProductName GetProductName
#define getInstanceName GetInstanceName
#define getGuidFFDriver GetGuidFFDriver
#define getUsagePage GetUsagePage
#define getUsage GetUsage
#define getDevType GetDevType
#define getGuidType GetGuidType
#define getOfs GetOfs
#define getType GetType
#define getFlags GetFlags
#define getName GetName
#define getCollectionNumber GetCollectionNumber
#define getDesignatorIndex GetDesignatorIndex
#define getUsagePage GetUsagePage
#define getUsage GetUsage
#define getDimension GetDimension
#define getExponent GetExponent
#define acquire Acquire
#define getDeviceObjectsEnum GetDeviceObjectsEnum
#define getCapabilities GetCapabilities
#define getDeviceData GetDeviceData
#define getDeviceInfo GetDeviceInfo
#define getDeviceStateKeyboard GetDeviceStateKeyboard
#define getDeviceStateMouse GetDeviceStateMouse
#define getDeviceStateMouse2 GetDeviceStateMouse2
#define getDeviceStateJoystick GetDeviceStateJoystick
#define getDeviceStateJoystick2 GetDeviceStateJoystick2
#define getDeviceState GetDeviceState
#define getObjectInfo GetObjectInfo
#define getProperty GetProperty
#define setCooperativeLevel SetCooperativeLevel
#define setCommonDataFormat SetCommonDataFormat
#define setDataFormat SetDataFormat
#define setEventNotification SetEventNotification
#define setProperty SetProperty
#define unacquire Unacquire
#define poll Poll
#define createEffect CreateEffect
#define createCustomEffect CreateCustomEffect
#define sendDeviceData SendDeviceData
#define sendForceFeedbackCommand SendForceFeedbackCommand
#define getForceFeedbackState GetForceFeedbackState
#define getEffectsEnum GetEffectsEnum
#define download Download
#define getEffectGuid GetEffectGuid
#define getEffectStatus GetEffectStatus
#define start Start
#define stop Stop
#define unload Unload
#define setParameters SetParameters
#define getParameters GetParameters
#define getCount GetCount
#define getEffectGuid GetEffectGuid
#define getType GetType
#define getStaticParams GetStaticParams
#define getDynamicParams GetDynamicParams
#define getName GetName
#define getItem GetItem
#endif
#ifdef C_ONLY
#define CONST_DIENUMDEVICESFLAGS LONG
#define CONST_DI8DEVICETYPE LONG
#define CONST_DIDFTFLAGS LONG
#define CONST_DIDGDDFLAGS LONG
#define CONST_DIPHFLAGS LONG
#define CONST_DISCLFLAGS LONG
#define CONST_DISDDFLAGS LONG
#define CONST_DIDEVCAPSFLAGS LONG
#define CONST_DIDATAFORMATFLAGS LONG
#define CONST_DIDEVICEOBJINSTANCEFLAGS LONG
#define CONST_DIPROPERTYFLAGS LONG
#define CONST_DIKEYFLAGS LONG
#define CONST_DICOMMONDATAFORMATS LONG
#define CONST_DICONDITIONFLAGS LONG
#define CONST_DINPUTCONSTANTS LONG
#define CONST_DISFFCFLAGS LONG
#define CONST_DINPUTERR LONG
#define CONST_DIEFTFLAGS LONG
#define CONST_DIEFFFLAGS LONG
#define CONST_DIEPFLAGS LONG
#define CONST_DIEGESFLAGS LONG
#define CONST_DIGFFSFLAGS LONG
#define CONST_DIMOUSEOFS LONG
#define CONST_DIJOYSTICKOFS LONG
#endif
//For bug #41819
#define MAXCPOINTSNUM_CDESC 8
///////////////////////////////////////////////////////////////////////////
//
// Direct Input Inteface List
//
///////////////////////////////////////////////////////////////////////////
interface I_dxj_DirectInput8;
interface I_dxj_DirectInputDevice8;
interface I_dxj_DirectInputEffect;
interface I_dxj_DirectInputEnumEffects;
interface I_dxj_DIEnumDevices8;
interface I_dxj_DIEnumDeviceObjects;
interface I_dxj_DIEnumCreatedEffectObjects;
///////////////////////////////////////////////////////////////////////////
//
// Direct Input Constants
//
///////////////////////////////////////////////////////////////////////////
#ifdef VB_ONLY
#include "dig.idl"
//
// Direct InputString Constants
//
[
dllname("dx8vb.dll")
]
module DINPUT8STRINGCONSTANTS
{
// key names for address components
const BSTR DIPROP_AUTOCENTER=L"diprop_autocenter";
const BSTR DIPROP_AXISMODE=L"diprop_axismode";
const BSTR DIPROP_BUFFERSIZE=L"diprop_buffersize";
const BSTR DIPROP_CALIBRATIONMODE=L"diprop_calibrationmode";
const BSTR DIPROP_DEADZONE=L"diprop_deadzone";
const BSTR DIPROP_RANGE=L"diprop_range";
const BSTR DIPROP_SATURATION=L"diprop_saturation";
const BSTR DIPROP_KEYNAME=L"diprop_keyname";
const BSTR DIPROP_SCANCODE=L"diprop_scancode";
//Added for bug #41819
const BSTR DIPROP_GRANULARITY =L"diprop_granularity";
const BSTR DIPROP_FFGAIN =L"diprop_ffgain";
const BSTR DIPROP_FFLOAD =L"diprop_ffload";
const BSTR DIPROP_CALIBRATION =L"diprop_calibration";
const BSTR DIPROP_GUIDANDPATH =L"diprop_guidandpath";
const BSTR DIPROP_INSTANCENAME =L"diprop_instancename";
const BSTR DIPROP_PRODUCTNAME =L"diprop_productname";
const BSTR DIPROP_JOYSTICKID =L"diprop_joystickid";
const BSTR DIPROP_GETPORTDISPLAYNAME =L"diprop_getportdisplayname";
const BSTR DIPROP_PHYSICALRANGE =L"diprop_physicalrange";
const BSTR DIPROP_LOGICALRANGE =L"diprop_logicalrange";
const BSTR DIPROP_CPOINTS =L"diprop_cpoints";
const BSTR DIPROP_APPDATA =L"diprop_appdata";
//const BSTR DIPROP_VIDPID =L"diprop_vidpid";
const BSTR DIPROP_USERNAME =L"diprop_username";
//const BSTR DIPROP_TYPENAME =L"diprop_typename";
//End bug #41819
};
// pdon asked for removal
//
[helpcontext(74147)]
typedef enum CONST_DIEDBSFLAGS {
DIEDBS_MAPPEDPRI1 = 0x00000001,
DIEDBS_MAPPEDPRI2 = 0x00000002,
DIEDBS_RECENTDEVICE = 0x00000010,
DIEDBS_NEWDEVICE = 0x00000020,
} CONST_DIEDBSFLAGS;
//
// #define DIEDBS_MAPPEDPRI1 0x00000001
// #define DIEDBS_MAPPEDPRI2 0x00000002
// #define DIEDBS_RECENTDEVICE 0x00000010
// #define DIEDBS_NEWDEVICE 0x00000020
[helpcontext(84147)]
typedef enum CONST_DIEDBSFLFLAGS {
DIEDBSFL_ATTACHEDONLY = 0x00000000,
DIEDBSFL_THISUSER = 0x00000010 ,
DIEDBSFL_FORCEFEEDBACK = 0x00000100,
DIEDBSFL_AVAILABLEDEVICES = 0x00001000,
DIEDBSFL_MULTIMICEKEYBOARDS= 0x00002000,
DIEDBSFL_NONGAMINGDEVICES = 0x00004000,
DIEDBSFL_VALID = 0x00007110,
} CONST_DIEDBSFLFLAGS;
[helpcontext(84138)]
typedef enum CONST_DIDALFLAGS {
DIDAL_CENTERED = 0x00000000,
DIDAL_LEFTALIGNED = 0x00000001,
DIDAL_RIGHTALIGNED = 0x00000002,
DIDAL_MIDDLE = 0x00000000,
DIDAL_TOPALIGNED = 0x00000004,
DIDAL_BOTTOMALIGNED = 0x00000008,
} CONST_DIDALFLAGS;
[helpcontext(84160)]
typedef enum CONST_DIMAPFLAGS {
// DIPHYSICAL_KEYBOARD = 0x81000000,
// DIPHYSICAL_MOUSE = 0x82000000,
// Removed for RC1
// DIPOV_ANY = 0xFF0046FF,
// DIBUTTON_ANY = 0xFF0044FF,
// DIAXIS_ANY = 0xFF0042FF,
// DIAXIS_ANY_X = 0xFF00C2FF,
// DIAXIS_ANY_Y = 0xFF0142FF,
// DIAXIS_ANY_Z = 0xFF01C2FF,
// DIAXIS_ANY_R = 0xFF0242FF,
// DIAXIS_ANY_U = 0xFF02C2FF,
// DIAXIS_ANY_V = 0xFF0342FF,
// DIAXIS_ANY_A = 0xFF03C2FF,
// DIAXIS_ANY_B = 0xFF0442FF,
// DIAXIS_ANY_C = 0xFF04C2FF,
/*
* "ANY" semantics can be used as a last resort to get mappings for actions
* that match nothing in the chosen virtual genre. These semantics will be
* mapped at a lower priority that virtual genre semantics. Also, hardware
* vendors will not be able to provide sensible mappings for these unless
* they provide application specific mappings.
*/
DIAXIS_ANY_X_1 = 0xFF00C201 ,
DIAXIS_ANY_X_2 = 0xFF00C202 ,
DIAXIS_ANY_Y_1 = 0xFF014201 ,
DIAXIS_ANY_Y_2 = 0xFF014202 ,
DIAXIS_ANY_Z_1 = 0xFF01C201 ,
DIAXIS_ANY_Z_2 = 0xFF01C202 ,
DIAXIS_ANY_R_1 = 0xFF024201 ,
DIAXIS_ANY_R_2 = 0xFF024202 ,
DIAXIS_ANY_U_1 = 0xFF02C201 ,
DIAXIS_ANY_U_2 = 0xFF02C202 ,
DIAXIS_ANY_V_1 = 0xFF034201 ,
DIAXIS_ANY_V_2 = 0xFF034202 ,
DIAXIS_ANY_A_1 = 0xFF03C201 ,
DIAXIS_ANY_A_2 = 0xFF03C202 ,
DIAXIS_ANY_B_1 = 0xFF044201 ,
DIAXIS_ANY_B_2 = 0xFF044202 ,
DIAXIS_ANY_C_1 = 0xFF04C201 ,
DIAXIS_ANY_C_2 = 0xFF04C202 ,
DIAXIS_ANY_S_1 = 0xFF054201 ,
DIAXIS_ANY_S_2 = 0xFF054202 ,
DIAXIS_ANY_1 =0xFF004201 ,
DIAXIS_ANY_2 =0xFF004202 ,
DIAXIS_ANY_3 =0xFF004203 ,
DIAXIS_ANY_4 =0xFF004204 ,
DIPOV_ANY_1 =0xFF004601 ,
DIPOV_ANY_2 =0xFF004602 ,
DIPOV_ANY_3 =0xFF004603 ,
DIPOV_ANY_4 =0xFF004604 ,
DIBUTTON_ANY = 0xFF004400 ,
} CONST_DIMAPFLAGS;
[helpcontext(84154)]
typedef enum CONST_DIFEFFLAGS
{
DIFEF_DEFAULT =0x00000000,
DIFEF_INCLUDENONSTANDARD =0x00000001,
DIFEF_MODIFYIFNEEDED =0x00000010
} CONST_DIFEFFLAGS;
[helpcontext(84140)]
typedef enum CONST_DIDBAMFLAGS {
DIDBAM_DEFAULT = 0x00000000,
DIDBAM_PRESERVE = 0x00000001,
DIDBAM_INITIALIZE = 0x00000002,
DIDBAM_HWDEFAULTS = 0x00000004,
} CONST_IDBAMFLAGS;
[helpcontext(84199)]
typedef enum CONST_DIAFTSFLAGS {
DIAFTS_NEWDEVICELOW =0xFFFFFFFF,
DIAFTS_NEWDEVICEHIGH =0xFFFFFFFF,
DIAFTS_UNUSEDDEVICELOW =0x00000000,
DIAFTS_UNUSEDDEVICEHIGH =0x00000000,
} CONST_DIAFTSFLAGS;
[helpcontext(84146)]
typedef enum CONST_DIDSAMFLAGS
{
DIDSAM_DEFAULT = 0x00000000,
DIDSAM_NOUSER = 0x00000001,
DIDSAM_FORCESAVE = 0x00000002,
} CONST_DIDSAMFLAGS;
[helpcontext(84135)]
typedef enum CONST_DICDFLAGS {
DICD_DEFAULT = 0x00000000,
DICD_EDIT = 0x00000001
} CONST_DICDFLAGS;
[helpcontext(84133)]
typedef enum CONST_DIAFLAGS
{
DIA_FORCEFEEDBACK = 0x00000001,
DIA_APPMAPPED = 0x00000002,
DIA_APPNOMAP = 0x00000004,
DIA_NORANGE = 0x00000008,
DIA_APPFIXED = 0x00000010
} CONST_DIAFLAGS;
[helpcontext(84134)]
typedef enum CONST_DIAHFLAGS
{
DIAH_UNMAPPED = 0x00000000,
DIAH_USERCONFIG = 0x00000001,
DIAH_APPREQUESTED = 0x00000002,
DIAH_HWAPP = 0x00000004,
DIAH_HWDEFAULT = 0x00000008,
// DIAH_OTHERAPP = 0x00000010,
DIAH_DEFAULT = 0x00000020,
DIAH_ERROR = 0x80000000,
} CONST_DIAHFLAGS;
[helpcontext(84151)]
typedef enum CONST_DIENUMDEVICESFLAGS {
DIEDFL_ALLDEVICES =0x00000000,
DIEDFL_ATTACHEDONLY =0x00000001,
DIEDFL_FORCEFEEDBACK =0x00000100,
DIEDFL_INCLUDEALIASES =0x00010000,
DIEDFL_INCLUDEPHANTOMS =0x00020000,
DIEDFL_INCLUDEHIDDEN =0x00040000
} CONST_DIENUMDEVICESFLAGS;
[helpcontext(84132)]
typedef enum CONST_DI8DEVICETYPE {
DI8DEVCLASS_ALL =0,
DI8DEVCLASS_DEVICE =1,
DI8DEVCLASS_POINTER =2,
DI8DEVCLASS_KEYBOARD =3,
DI8DEVCLASS_GAMECTRL =4,
DI8DEVTYPE_DEVICE =0x11,
DI8DEVTYPE_MOUSE =0x12,
DI8DEVTYPE_KEYBOARD =0x13,
DI8DEVTYPE_JOYSTICK =0x14,
DI8DEVTYPE_GAMEPAD =0x15,
DI8DEVTYPE_DRIVING =0x16,
DI8DEVTYPE_FLIGHT =0x17,
DI8DEVTYPE_1STPERSON =0x18,
DI8DEVTYPE_DEVICECTRL =0x19,
DI8DEVTYPE_SCREENPOINTER =0x1A,
DI8DEVTYPE_REMOTE =0x1B,
DI8DEVTYPE_SUPPLEMENTAL =0x1C,
[hidden] DI8DEVTYPE_FORCEDWORD =0x7F000000,
} CONST_DI8DEVICETYPE;
[helpcontext(84131)]
typedef enum CONST_DI8DEVICESUBTYPE {
DIDEVTYPE_HID =0x00010000,
DI8DEVTYPEMOUSE_UNKNOWN = 0x100,
DI8DEVTYPEMOUSE_TRADITIONAL = 0x200,
DI8DEVTYPEMOUSE_FINGERSTICK = 0x300,
DI8DEVTYPEMOUSE_TOUCHPAD = 0x400,
DI8DEVTYPEMOUSE_TRACKBALL = 0x500,
DI8DEVTYPEMOUSE_ABSOLUTE = 0x600,
DI8DEVTYPEKEYBOARD_UNKNOWN = 0x000,
DI8DEVTYPEKEYBOARD_PCXT = 0x100,
DI8DEVTYPEKEYBOARD_OLIVETTI = 0x200,
DI8DEVTYPEKEYBOARD_PCAT = 0x300,
DI8DEVTYPEKEYBOARD_PCENH = 0x400,
DI8DEVTYPEKEYBOARD_NOKIA1050 = 0x500,
DI8DEVTYPEKEYBOARD_NOKIA9140 = 0x600,
DI8DEVTYPEKEYBOARD_NEC98 = 0x700,
DI8DEVTYPEKEYBOARD_NEC98LAPTOP = 0x800,
DI8DEVTYPEKEYBOARD_NEC98106 = 0x900,
DI8DEVTYPEKEYBOARD_JAPAN106 = 0xA00,
DI8DEVTYPEKEYBOARD_JAPANAX = 0xB00,
DI8DEVTYPEKEYBOARD_J3100 = 0xC00,
DI8DEVTYPE_LIMITEDGAMESUBTYPE = 0x100,
DI8DEVTYPEJOYSTICK_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE,
DI8DEVTYPEJOYSTICK_STANDARD = 0x200,
DI8D8EVTYPEJOYSTICK_ENHANCED = 0x300,
DI8DEVTYPEGAMEPAD_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE,
DI8DEVTYPEGAMEPAD_STANDARD = 0x200,
DI8DEVTYPEGAMEPAD_TILT = 0x300,
DI8DEVTYPEDRIVING_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE,
DI8DEVTYPEDRIVING_COMBINEDPEDALS = 0x200,
DI8DEVTYPEDRIVING_DUALPEDALS = 0x300,
DI8DEVTYPEDRIVING_THREEPEDALS = 0x400,
DI8DEVTYPEDRIVING_HANDHELD = 0x500,
DI8DEVTYPEFLIGHT_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE,
DI8DEVTYPEFLIGHT_STICK = 0x200,
DI8DEVTYPEFLIGHT_YOKE = 0x300,
DI8DEVTYPEFLIGHT_RC = 0x400,
DI8DEVTYPE1STPERSON_LIMITED = DI8DEVTYPE_LIMITEDGAMESUBTYPE,
DI8DEVTYPE1STPERSON_UNKNOWN = 0x200,
DI8DEVTYPE1STPERSON_SIXDOF = 0x300,
DI8DEVTYPE1STPERSON_SHOOTER = 0x400,
DI8DEVTYPESCREENPTR_UNKNOWN = 0x200,
DI8DEVTYPESCREENPTR_LIGHTGUN = 0x300,
DI8DEVTYPESCREENPTR_LIGHTPEN = 0x400,
DI8DEVTYPESCREENPTR_TOUCH = 0x500,
DI8DEVTYPEREMOTE_UNKNOWN = 0x200,
DI8DEVTYPEDEVICECTRL_UNKNOWN = 0x200,
DI8DEVTYPEDEVICECTRL_COMMSSELECTION = 0x300,
DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED = 0x400,
DI8DEVTYPESUPPLEMENTAL_UNKNOWN = 0x200,
DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER = 0x300,
DI8DEVTYPESUPPLEMENTAL_HEADTRACKER = 0x400,
DI8DEVTYPESUPPLEMENTAL_HANDTRACKER = 0x500,
DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE = 0x600,
DI8DEVTYPESUPPLEMENTAL_SHIFTER = 0x700,
DI8DEVTYPESUPPLEMENTAL_THROTTLE = 0x800,
DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE = 0x900,
DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS = 0xA00,
DI8DEVTYPESUPPLEMENTAL_DUALPEDALS = 0xB00,
DI8DEVTYPESUPPLEMENTAL_THREEPEDALS = 0xC00,
DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS = 0xD00
} CONST_DI8DEVICESUBTYPE;
[helpcontext(84145)]
typedef enum CONST_DIDIFTFLAGS {
DIDIFT_CONFIGURATION = 0x00000001,
DIDIFT_OVERLAY = 0x00000002,
} CONST_DIDIFTFLAGS;
[helpcontext(84143)]
typedef enum CONST_DIDFTFLAGS {
DIDFT_ALL =0x00000000,
DIDFT_RELAXIS =0x00000001,
DIDFT_ABSAXIS =0x00000002,
DIDFT_AXIS =0x00000003,
DIDFT_PSHBUTTON =0x00000004,
DIDFT_TGLBUTTON =0x00000008,
DIDFT_BUTTON =0x0000000C,
DIDFT_POV =0x00000010,
DIDFT_COLLECTION =0x00000040,
DIDFT_NODATA =0x00000080,
DIDFT_ANYINSTANCE =0x00FFFF00,
DIDFT_INSTANCEMASK =DIDFT_ANYINSTANCE,
DIDFT_FFACTUATOR =0x01000000,
DIDFT_FFEFFECTTRIGGER =0x02000000,
DIDFT_NOCOLLECTION =0x00FFFF00,
DIDFT_VENDORDEFINED =0x04000000,
DIDFT_ALIAS =0x08000000,
DIDFT_OUTPUT =0x10000000,
} CONST_DIDFTFLAGS;
[helpcontext(84144)]
typedef enum CONST_DIDGDDFLAGS {
DIGDD_DEFAULT =0x00000000,
DIGDD_PEEK =0x00000001
} CONST_DIDGDDFLAGS;
[helpcontext(84165)]
typedef enum CONST_DIPHFLAGS {
DIPH_DEVICE =0,
DIPH_BYOFFSET =1,
DIPH_BYID =2,
DIPH_BYUSAGE =3
} CONST_DIPHFLAGS;
[helpcontext(84166)]
typedef enum CONST_DISCLFLAGS {
DISCL_EXCLUSIVE =0x00000001,
DISCL_NONEXCLUSIVE =0x00000002,
DISCL_FOREGROUND =0x00000004,
DISCL_BACKGROUND =0x00000008,
DISCL_NOWINKEY =0x00000010
} CONST_DISCLFLAGS;
[helpcontext(84141)]
typedef enum CONST_DIDEVCAPSFLAGS {
DIDC_ATTACHED =0x00000001,
DIDC_POLLEDDEVICE =0x00000002,
DIDC_EMULATED =0x00000004,
DIDC_POLLEDDATAFORMAT =0x00000008,
DIDC_FORCEFEEDBACK =0x00000100,
DIDC_FFATTACK =0x00000200,
DIDC_FFFADE =0x00000400,
DIDC_SATURATION =0x00000800,
DIDC_POSNEGCOEFFICIENTS =0x00001000,
DIDC_POSNEGSATURATION =0x00002000,
DIDC_DEADBAND =0x00004000,
DIDC_STARTDELAY =0x00008000,
DIDC_ALIAS =0x00010000,
DIDC_PHANTOM =0x00020000,
DIDC_HIDDEN =0x00040000
} CONST_DIDEVCAPSFLAGS;
[helpcontext(84139)]
typedef enum CONST_DIDATAFORMATFLAGS {
DIDF_ABSAXIS =0x00000001,
DIDF_RELAXIS =0x00000002
} CONST_DIDATAFORMATFLAGS;
[helpcontext(84142)]
typedef enum CONST_DIDEVICEOBJINSTANCEFLAGS {
DIDOI_FFACTUATOR =0x00000001,
DIDOI_FFEFFECTTRIGGER =0x00000002,
DIDOI_POLLED =0x00008000,
DIDOI_ASPECTPOSITION =0x00000100,
DIDOI_ASPECTVELOCITY =0x00000200,
DIDOI_ASPECTACCEL =0x00000300,
DIDOI_ASPECTFORCE =0x00000400,
DIDOI_ASPECTMASK =0x00000F00,
DIDOI_GUIDISUSAGE =0x00010000
} CONST_DIDEVICEOBJINSTANCEFLAGS;
/*
[helpcontext(84847)]
typedef enum CONST_DIPROPERTYFLAGS {
DIPROP_BUFFERSIZE =1,
DIPROP_AXISMODE =2,
DIPROPAXISMODE_ABS =0,
DIPROPAXISMODE_REL =1,
DIPROP_GRANULARITY =3,
DIPROP_RANGE =4,
DIPROP_DEADZONE =5,
DIPROP_SATURATION =6,
DIPROP_FFGAIN =7,
DIPROP_FFLOAD =8,
DIPROP_AUTOCENTER =9,
DIPROPAUTOCENTER_OFF =0,
DIPROPAUTOCENTER_ON =1,
DIPROP_CALIBRATIONMODE =10,
//TODO NOTE THESE ARE NEW AND NEED TO BE IMPLEMENTED
DIPROP_CALIBRATION =11,
DIPROP_GUIDANDPATH =12,
DIPROP_INSTANCENAME =13,
DIPROP_PRODUCTNAME =14,
DIPROP_JOYSTICKID =15,
DIPROP_GETPORTDISPLAYNAME =16,
DIPROP_PHYSICALRANGE =18,
DIPROP_LOGICALRANGE =19,
DIPROP_KEYNAME =20,
DIPROP_CPOINTS =21,
DIPROP_APPDATA =22,
DIPROP_SCANCODE =23,
DIPROP_VIDPID =24,
DIPROP_USERNAME =25,
DIPROP_TYPENAME =26,
DIPROP_ENABLEREPORTID =0x0000FFFB,
DIPROPCALIBRATIONMODE_COOKED= 0,
DIPROPCALIBRATIONMODE_RAW = 1
} CONST_DIPROPERTYFLAGS;
*/
[helpcontext(84159)]
typedef enum CONST_DIKEYFLAGS {
DIK_ESCAPE = 0x01,
DIK_1 = 0x02,
DIK_2 = 0x03,
DIK_3 = 0x04,
DIK_4 = 0x05,
DIK_5 = 0x06,
DIK_6 = 0x07,
DIK_7 = 0x08,
DIK_8 = 0x09,
DIK_9 = 0x0A,
DIK_0 = 0x0B,
DIK_MINUS = 0x0C , /* - on main keyboard */
DIK_EQUALS = 0x0D,
DIK_BACK = 0x0E , /* backspace */
DIK_BACKSPACE = 0x0E ,
DIK_TAB = 0x0F,
DIK_Q = 0x10,
DIK_W = 0x11,
DIK_E = 0x12,
DIK_R = 0x13,
DIK_T = 0x14,
DIK_Y = 0x15,
DIK_U = 0x16,
DIK_I = 0x17,
DIK_O = 0x18,
DIK_P = 0x19,
DIK_LBRACKET = 0x1A,
DIK_RBRACKET = 0x1B,
DIK_RETURN = 0x1C , /* Enter on main keyboard */
DIK_LCONTROL = 0x1D,
DIK_A = 0x1E,
DIK_S = 0x1F,
DIK_D = 0x20,
DIK_F = 0x21,
DIK_G = 0x22,
DIK_H = 0x23,
DIK_J = 0x24,
DIK_K = 0x25,
DIK_L = 0x26,
DIK_SEMICOLON = 0x27,
DIK_APOSTROPHE = 0x28,
DIK_GRAVE = 0x29 , /* accent grave */
DIK_LSHIFT = 0x2A,
DIK_BACKSLASH = 0x2B,
DIK_Z = 0x2C,
DIK_X = 0x2D,
DIK_C = 0x2E,
DIK_V = 0x2F,
DIK_B = 0x30,
DIK_N = 0x31,
DIK_M = 0x32,
DIK_COMMA = 0x33,
DIK_PERIOD = 0x34 , /* . on main keyboard */
DIK_SLASH = 0x35 , /* / on main keyboard */
DIK_RSHIFT = 0x36,
DIK_MULTIPLY = 0x37 , /* * on numeric keypad */
DIK_NUMPADSTAR = 0x37 ,
DIK_LMENU = 0x38 , /* left Alt */
DIK_LALT = 0x38 ,
DIK_SPACE = 0x39,
DIK_CAPITAL = 0x3A,
DIK_CAPSLOCK = 0x3A,
DIK_F1 = 0x3B,
DIK_F2 = 0x3C,
DIK_F3 = 0x3D,
DIK_F4 = 0x3E,
DIK_F5 = 0x3F,
DIK_F6 = 0x40,
DIK_F7 = 0x41,
DIK_F8 = 0x42,
DIK_F9 = 0x43,
DIK_F10 = 0x44,
DIK_NUMLOCK = 0x45,
DIK_SCROLL = 0x46 , /* Scroll Lock */
DIK_NUMPAD7 = 0x47,
DIK_NUMPAD8 = 0x48,
DIK_NUMPAD9 = 0x49,
DIK_SUBTRACT = 0x4A , /* - on numeric keypad */
DIK_NUMPADMINUS = 0x4A , /* - on numeric keypad */
DIK_NUMPAD4 = 0x4B,
DIK_NUMPAD5 = 0x4C,
DIK_NUMPAD6 = 0x4D,
DIK_ADD = 0x4E , /* + on numeric keypad */
DIK_NUMPADPLUS = 0x4E , /* + on numeric keypad */
DIK_NUMPAD1 = 0x4F,
DIK_NUMPAD2 = 0x50,
DIK_NUMPAD3 = 0x51,
DIK_NUMPAD0 = 0x52,
DIK_DECIMAL = 0x53, /* . on numeric keypad */
DIK_NUMPADPERIOD = 0x53, /* . on numeric keypad */
DIK_OEM_102 = 0x56, /* < > | on UK/Germany keyboards */
DIK_F11 = 0x57,
DIK_F12 = 0x58 ,
DIK_F13 = 0x64 , /* (NEC PC98) */
DIK_F14 = 0x65 , /* (NEC PC98) */
DIK_F15 = 0x66 , /* (NEC PC98) */
DIK_KANA = 0x70 , /* (Japanese keyboard) */
DIK_ABNT_C1 = 0x73 , /* / ? on Portugese (Brazilian) keyboards */
DIK_CONVERT = 0x79 , /* (Japanese keyboard) */
DIK_NOCONVERT = 0x7B , /* (Japanese keyboard) */
DIK_YEN = 0x7D , /* (Japanese keyboard) */
DIK_ABNT_C2 = 0x7E , /* Numpad . on Portugese (Brazilian) keyboards */
DIK_NUMPADEQUALS = 0x8D , /* = on numeric keypad (NEC PC98) */
DIK_CIRCUMFLEX = 0x90 , /* (Japanese keyboard) */
DIK_PREVTRACK = 0x90 , /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */
DIK_AT = 0x91 , /* (NEC PC98) */
DIK_COLON = 0x92 , /* (NEC PC98) */
DIK_UNDERLINE = 0x93 , /* (NEC PC98) */
DIK_KANJI = 0x94 , /* (Japanese keyboard) */
DIK_STOP = 0x95 , /* (NEC PC98) */
DIK_AX = 0x96 , /* (Japan AX) */
DIK_UNLABELED = 0x97 , /* (J3100) */
DIK_NEXTTRACK = 0x99 , /* Next Track */
DIK_NUMPADENTER = 0x9C , /* Enter on numeric keypad */
DIK_RCONTROL = 0x9D ,
DIK_MUTE = 0xA0 , /* Mute */
DIK_CALCULATOR = 0xA1 , /* Calculator */
DIK_PLAYPAUSE = 0xA2 , /* Play / Pause */
DIK_MEDIASTOP = 0xA4 , /* Media Stop */
DIK_VOLUMEDOWN = 0xAE , /* Volume - */
DIK_VOLUMEUP = 0xB0 , /* Volume + */
DIK_WEBHOME = 0xB2 , /* Web home */
DIK_NUMPADCOMMA = 0xB3, /* , on numeric keypad (NEC PC98) */
DIK_DIVIDE = 0xB5, /* / on numeric keypad */
DIK_NUMPADSLASH = 0xB5, /* / on numeric keypad */
DIK_SYSRQ = 0xB7,
DIK_RMENU = 0xB8, /* right Al t */
DIK_RALT = 0xB8, /* right Al t */
DIK_PAUSE = 0xC5, /* Pause */
DIK_HOME = 0xC7, /* Home on arrow keypad */
DIK_UP = 0xC8, /* UpArrow on arrow keypad */
DIK_UPARROW = 0xC8, /* UpArrow on arrow keypad */
DIK_PRIOR = 0xC9, /* PgUp on arrow keypad */
DIK_PGUP = 0xC9, /* PgUp on arrow keypad */
DIK_LEFT = 0xCB, /* LeftArrow on arrow keypad */
DIK_LEFTARROW = 0xCB, /* LeftArrow on arrow keypad */
DIK_RIGHT = 0xCD, /* RightArrow on arrow keypad */
DIK_RIGHTARROW = 0xCD, /* RightArrow on arrow keypad */
DIK_END = 0xCF, /* End on arrow keypad */
DIK_DOWN = 0xD0, /* DownArrow on arrow keypad */
DIK_DOWNARROW = 0xD0, /* DownArrow on arrow keypad */
DIK_NEXT = 0xD1, /* PgDn on arrow keypad */
DIK_PGDN = 0xD1, /* PgDn on arrow keypad */
DIK_INSERT = 0xD2, /* Insert on arrow keypad */
DIK_DELETE = 0xD3, /* Delete on arrow keypad */
DIK_LWIN = 0xDB, /* Left Windows key */
DIK_RWIN = 0xDC, /* Right Windows key */
DIK_APPS = 0xDD, /* AppMenu key */
DIK_POWER = 0xDE, /* System Power */
DIK_SLEEP = 0xDF, /* System Sleep */
DIK_WAKE = 0xE3, /* System Wake */
DIK_WEBSEARCH = 0xE5, /* Web Search */
DIK_WEBFAVORITES = 0xE6, /* Web Favorites */
DIK_WEBREFRESH = 0xE7, /* Web Refresh */
DIK_WEBSTOP = 0xE8, /* Web Stop */
DIK_WEBFORWARD = 0xE9, /* Web Forward */
DIK_WEBBACK = 0xEA, /* Web Back */
DIK_MYCOMPUTER = 0xEB, /* My Computer */
DIK_MAIL = 0xEC, /* Mail */
DIK_MEDIASELECT = 0xED, /* Media Select */
} CONST_DIKEYFLAGS;
[helpcontext(84158)]
typedef enum CONST_DIKEYBOARDFLAGS {
DIKEYBOARD_ESCAPE = 0x81000401,
DIKEYBOARD_1 = 0x81000402,
DIKEYBOARD_2 = 0x81000403,
DIKEYBOARD_3 = 0x81000404,
DIKEYBOARD_4 = 0x81000405,
DIKEYBOARD_5 = 0x81000406,
DIKEYBOARD_6 = 0x81000407,
DIKEYBOARD_7 = 0x81000408,
DIKEYBOARD_8 = 0x81000409,
DIKEYBOARD_9 = 0x8100040A,
DIKEYBOARD_0 = 0x8100040B,
DIKEYBOARD_MINUS = 0x8100040C, /* - on main keyboard */
DIKEYBOARD_EQUALS = 0x8100040D,
DIKEYBOARD_BACK = 0x8100040E, /* backspace */
DIKEYBOARD_TAB = 0x8100040F,
DIKEYBOARD_Q = 0x81000410,
DIKEYBOARD_W = 0x81000411,
DIKEYBOARD_E = 0x81000412,
DIKEYBOARD_R = 0x81000413,
DIKEYBOARD_T = 0x81000414,
DIKEYBOARD_Y = 0x81000415,
DIKEYBOARD_U = 0x81000416,
DIKEYBOARD_I = 0x81000417,
DIKEYBOARD_O = 0x81000418,
DIKEYBOARD_P = 0x81000419,
DIKEYBOARD_LBRACKET = 0x8100041A,
DIKEYBOARD_RBRACKET = 0x8100041B,
DIKEYBOARD_RETURN = 0x8100041C, /* Enter on main keyboard */
DIKEYBOARD_LCONTROL = 0x8100041D,
DIKEYBOARD_A = 0x8100041E,
DIKEYBOARD_S = 0x8100041F,
DIKEYBOARD_D = 0x81000420,
DIKEYBOARD_F = 0x81000421,
DIKEYBOARD_G = 0x81000422,
DIKEYBOARD_H = 0x81000423,
DIKEYBOARD_J = 0x81000424,
DIKEYBOARD_K = 0x81000425,
DIKEYBOARD_L = 0x81000426,
DIKEYBOARD_SEMICOLON = 0x81000427,
DIKEYBOARD_APOSTROPHE = 0x81000428,
DIKEYBOARD_GRAVE = 0x81000429, /* accent grave */
DIKEYBOARD_LSHIFT = 0x8100042A,
DIKEYBOARD_BACKSLASH = 0x8100042B,
DIKEYBOARD_Z = 0x8100042C,
DIKEYBOARD_X = 0x8100042D,
DIKEYBOARD_C = 0x8100042E,
DIKEYBOARD_V = 0x8100042F,
DIKEYBOARD_B = 0x81000430,
DIKEYBOARD_N = 0x81000431,
DIKEYBOARD_M = 0x81000432,
DIKEYBOARD_COMMA = 0x81000433,
DIKEYBOARD_PERIOD = 0x81000434, /* . on main keyboard */
DIKEYBOARD_SLASH = 0x81000435, /* / on main keyboard */
DIKEYBOARD_RSHIFT = 0x81000436,
DIKEYBOARD_MULTIPLY = 0x81000437, /* * on numeric keypad */
DIKEYBOARD_LMENU = 0x81000438, /* left Alt */
DIKEYBOARD_SPACE = 0x81000439,
DIKEYBOARD_CAPITAL = 0x8100043A,
DIKEYBOARD_F1 = 0x8100043B,
DIKEYBOARD_F2 = 0x8100043C,
DIKEYBOARD_F3 = 0x8100043D,
DIKEYBOARD_F4 = 0x8100043E,
DIKEYBOARD_F5 = 0x8100043F,
DIKEYBOARD_F6 = 0x81000440,
DIKEYBOARD_F7 = 0x81000441,
DIKEYBOARD_F8 = 0x81000442,
DIKEYBOARD_F9 = 0x81000443,
DIKEYBOARD_F10 = 0x81000444,
DIKEYBOARD_NUMLOCK = 0x81000445,
DIKEYBOARD_SCROLL = 0x81000446, /* Scroll Lock */
DIKEYBOARD_NUMPAD7 = 0x81000447,
DIKEYBOARD_NUMPAD8 = 0x81000448,
DIKEYBOARD_NUMPAD9 = 0x81000449,
DIKEYBOARD_SUBTRACT = 0x8100044A , /* - on numeric keypad */
DIKEYBOARD_NUMPAD4 = 0x8100044B ,
DIKEYBOARD_NUMPAD5 = 0x8100044C ,
DIKEYBOARD_NUMPAD6 = 0x8100044D ,
DIKEYBOARD_ADD = 0x8100044E , /* + on numeric keypad */
DIKEYBOARD_NUMPAD1 = 0x8100044F ,
DIKEYBOARD_NUMPAD2 = 0x81000450 ,
DIKEYBOARD_NUMPAD3 = 0x81000451 ,
DIKEYBOARD_NUMPAD0 = 0x81000452 ,
DIKEYBOARD_DECIMAL = 0x81000453 , /* . on numeric keypad */
DIKEYBOARD_OEM_102 = 0x81000456 , /* < > | on UK/Germany keyboards */
DIKEYBOARD_F11 = 0x81000457 ,
DIKEYBOARD_F12 = 0x81000458 ,
DIKEYBOARD_F13 = 0x81000464 , /* (NEC PC98) */
DIKEYBOARD_F14 = 0x81000465 , /* (NEC PC98) */
DIKEYBOARD_F15 = 0x81000466 , /* (NEC PC98) */
DIKEYBOARD_KANA = 0x81000470 , /* (Japanese keyboard) */
DIKEYBOARD_ABNT_C1 = 0x81000473 , /* / ? on Portugese (Brazilian) keyboards */
DIKEYBOARD_CONVERT = 0x81000479 , /* (Japanese keyboard) */
DIKEYBOARD_NOCONVERT = 0x8100047B , /* (Japanese keyboard) */
DIKEYBOARD_YEN = 0x8100047D , /* (Japanese keyboard) */
DIKEYBOARD_ABNT_C2 = 0x8100047E , /* Numpad . on Portugese (Brazilian) keyboards */
DIKEYBOARD_NUMPADEQUALS = 0x8100048D , /* = on numeric keypad (NEC PC98) */
DIKEYBOARD_PREVTRACK = 0x81000490 , /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */
DIKEYBOARD_AT = 0x81000491 , /* (NEC PC98) */
DIKEYBOARD_COLON = 0x81000492 , /* (NEC PC98) */
DIKEYBOARD_UNDERLINE = 0x81000493 , /* (NEC PC98) */
DIKEYBOARD_KANJI = 0x81000494 , /* (Japanese keyboard) */
DIKEYBOARD_STOP = 0x81000495 , /* (NEC PC98) */
DIKEYBOARD_AX = 0x81000496 , /* (Japan AX) */
DIKEYBOARD_UNLABELED = 0x81000497 , /* (J3100) */
DIKEYBOARD_NEXTTRACK = 0x81000499 , /* Next Track */
DIKEYBOARD_NUMPADENTER = 0x8100049C , /* Enter on numeric keypad */
DIKEYBOARD_RCONTROL = 0x8100049D ,
DIKEYBOARD_MUTE = 0x810004A0 , /* Mute */
DIKEYBOARD_CALCULATOR = 0x810004A1 , /* Calculator */
DIKEYBOARD_PLAYPAUSE = 0x810004A2 , /* Play / Pause */
DIKEYBOARD_MEDIASTOP = 0x810004A4 , /* Media Stop */
DIKEYBOARD_VOLUMEDOWN = 0x810004AE , /* Volume - */
DIKEYBOARD_VOLUMEUP = 0x810004B0 , /* Volume + */
DIKEYBOARD_WEBHOME = 0x810004B2 , /* Web home */
DIKEYBOARD_NUMPADCOMMA = 0x810004B3 , /* , on numeric keypad (NEC PC98) */
DIKEYBOARD_DIVIDE = 0x810004B5 , /* / on numeric keypad */
DIKEYBOARD_SYSRQ = 0x810004B7 ,
DIKEYBOARD_RMENU = 0x810004B8 , /* right Alt */
DIKEYBOARD_PAUSE = 0x810004C5 , /* Pause */
DIKEYBOARD_HOME = 0x810004C7 , /* Home on arrow keypad */
DIKEYBOARD_UP = 0x810004C8 , /* UpArrow on arrow keypad */
DIKEYBOARD_PRIOR = 0x810004C9 , /* PgUp on arrow keypad */
DIKEYBOARD_LEFT = 0x810004CB , /* LeftArrow on arrow keypad */
DIKEYBOARD_RIGHT = 0x810004CD , /* RightArrow on arrow keypad */
DIKEYBOARD_END = 0x810004CF , /* End on arrow keypad */
DIKEYBOARD_DOWN = 0x810004D0 , /* DownArrow on arrow keypad */
DIKEYBOARD_NEXT = 0x810004D1 , /* PgDn on arrow keypad */
DIKEYBOARD_INSERT = 0x810004D2 , /* Insert on arrow keypad */
DIKEYBOARD_DELETE = 0x810004D3 , /* Delete on arrow keypad */
DIKEYBOARD_LWIN = 0x810004DB , /* Left Windows key */
DIKEYBOARD_RWIN = 0x810004DC , /* Right Windows key */
DIKEYBOARD_APPS = 0x810004DD , /* AppMenu key */
DIKEYBOARD_POWER = 0x810004DE , /* System Power */
DIKEYBOARD_SLEEP = 0x810004DF , /* System Sleep */
DIKEYBOARD_WAKE = 0x810004E3 , /* System Wake */
DIKEYBOARD_WEBSEARCH = 0x810004E5 , /* Web Search */
DIKEYBOARD_WEBFAVORITES = 0x810004E6 , /* Web Favorites */
DIKEYBOARD_WEBREFRESH = 0x810004E7 , /* Web Refresh */
DIKEYBOARD_WEBSTOP = 0x810004E8 , /* Web Stop */
DIKEYBOARD_WEBFORWARD = 0x810004E9 , /* Web Forward */
DIKEYBOARD_WEBBACK = 0x810004EA , /* Web Back */
DIKEYBOARD_MYCOMPUTER = 0x810004EB , /* My Computer */
DIKEYBOARD_MAIL = 0x810004EC , /* Mail */
DIKEYBOARD_MEDIASELECT = 0x810004ED , /* Media Select */
} CONST_DIKEYBOARDFLAGS;
[helpcontext(84162)]
typedef enum CONST_DIMOUSEOFS {
DIMOFS_X =0,
DIMOFS_Y =4,
DIMOFS_Z =8,
DIMOFS_BUTTON0 =12,
DIMOFS_BUTTON1 =13,
DIMOFS_BUTTON2 =14,
DIMOFS_BUTTON3 =15,
DIMOFS_BUTTON4 =16,
DIMOFS_BUTTON5 =17,
DIMOFS_BUTTON6 =18,
DIMOFS_BUTTON7 =19
} CONST_DIMOUSEOFS;
[helpcontext(84161)]
typedef enum CONST_DIMOUSEFLAGS {
DIMOUSE_XAXISAB = 0x82000200, // (= 0x82000200 |DIMOFS_X ) , /* X Axis-absolute: Some mice natively report absolute coordinates */
DIMOUSE_YAXISAB = 0x82000204, // (= 0x82000200 |DIMOFS_Y ) , /* Y Axis-absolute: Some mice natively report absolute coordinates */
DIMOUSE_XAXIS = 0x82000300, // (= 0x82000300 |DIMOFS_X ) , /* X Axis */
DIMOUSE_YAXIS = 0x82000304, // (= 0x82000300 |DIMOFS_Y ) , /* Y Axis */
DIMOUSE_WHEEL = 0x82000308, // (= 0x82000300 |DIMOFS_Z ) , /* Z Axis */
DIMOUSE_BUTTON0 = 0x8200040C, // (= 0x82000400 |DIMOFS_BUTTON0) , /* Button 0 */
DIMOUSE_BUTTON1 = 0x8200040D, // (= 0x82000400 |DIMOFS_BUTTON1) , /* Button 1 */
DIMOUSE_BUTTON2 = 0x8200040E, // (= 0x82000400 |DIMOFS_BUTTON2) , /* Button 2 */
DIMOUSE_BUTTON3 = 0x8200040F, // (= 0x82000400 |DIMOFS_BUTTON3) , /* Button 3 */
DIMOUSE_BUTTON4 = 0x82000410, // (= 0x82000400 |DIMOFS_BUTTON4) , /* Button 4 */
DIMOUSE_BUTTON5 = 0x82000411, // (= 0x82000400 |DIMOFS_BUTTON5) , /* Button 5 */
DIMOUSE_BUTTON6 = 0x82000412, // (= 0x82000400 |DIMOFS_BUTTON6) , /* Button 6 */
DIMOUSE_BUTTON7 = 0x82000413, // (= 0x82000400 |DIMOFS_BUTTON7) , /* Button 7 */
} CONST_DIMOUSEFLAGS;
[helpcontext(84169)]
typedef enum CONST_DIVOICEFLAGS {
DIVOICE_CHANNEL1 = 0x83000401,
DIVOICE_CHANNEL2 = 0x83000402,
DIVOICE_CHANNEL3 = 0x83000403,
DIVOICE_CHANNEL4 = 0x83000404,
DIVOICE_CHANNEL5 = 0x83000405,
DIVOICE_CHANNEL6 = 0x83000406,
DIVOICE_CHANNEL7 = 0x83000407,
DIVOICE_CHANNEL8 = 0x83000408,
DIVOICE_TEAM = 0x83000409,
DIVOICE_ALL = 0x8300040A,
DIVOICE_RECORDMUTE = 0x8300040B,
DIVOICE_PLAYBACKMUTE = 0x8300040C,
DIVOICE_TRANSMIT = 0x8300040D,
DIVOICE_VOICECOMMAND = 0x83000410,
} CONST_DIVOICEFLAGS;
[helpcontext(84163)]
typedef enum CONST_DINPUT {
DIPROPRANGE_NOMIN =0x80000000,
DIPROPRANGE_NOMAX =0x7FFFFFFF,
DI_DEGREES = 100,
DI_FFNOMINALMAX = 10000,
DI_SECONDS = 1000000,
// not needed hard coded in struct array
// MAXCPOINTSNUM =8,
// Not needed we dont have enumeration callbacks
// DIENUM_STOP =0,
// DIENUM_CONTINUE =1,
/*
* Flag to indicate that the dwReserved2 field of the JOYINFOEX structure
* contains mini-driver specific data to be passed by VJoyD to the mini-
* driver instead of doing a poll.
*/
// JOY_PASSDRIVERDATA =0x10000000,
/*
* Hardware Setting indicating that the device is a headtracker
*/
// JOY_HWS_ISHEADTRACKER =0x02000000,
/*
* Hardware Setting indicating that the VxD is used to replace
* the standard analog polling
*/
// JOY_HWS_ISGAMEPORTDRIVER =0x04000000,
/*
* Hardware Setting indicating that the driver needs a standard
* gameport in order to communicate with the device.
*/
// JOY_HWS_ISANALOGPORTDRIVER =0x08000000,
/*
* Hardware Setting indicating that VJoyD should not load this
* driver, it will be loaded externally and will register with
* VJoyD of it's own accord.
*/
// JOY_HWS_AUTOLOAD =0x10000000,
/*
* Hardware Setting indicating that the driver acquires any
* resources needed without needing a devnode through VJoyD.
*/
// JOY_HWS_NODEVNODE =0x20000000,
/*
* Hardware Setting indicating that the VxD can be used as
* a port 201h emulator.
*/
// JOY_HWS_ISGAMEPORTEMULATOR =0x40000000,
/*
* Usage Setting indicating that the settings are volatile and
* should be removed if still present on a reboot.
*/
// JOY_US_VOLATILE =0x00000008,
DIPROPAXISMODE_ABS =0,
DIPROPAXISMODE_REL =1,
DIPROPCALIBRATIONMODE_COOKED=0,
DIPROPCALIBRATIONMODE_RAW=1,
DIPROPAUTOCENTER_OFF =0,
DIPROPAUTOCENTER_ON =1,
DIEB_NOTRIGGER = 0xFFFFFFFF,
//Added for bug #41819
MAXCPOINTSNUM = MAXCPOINTSNUM_CDESC
//End bug #41819
} CONST_DINPUTCONSTANTS;
[helpcontext(84136)]
typedef enum CONST_DICOMMONDATAFORMATS
{
DIFORMAT_KEYBOARD =1,
DIFORMAT_MOUSE =2,
DIFORMAT_JOYSTICK =3,
DIFORMAT_JOYSTICK2 =4,
DIFORMAT_MOUSE2 =5,
} CONST_DICOMMONDATAFORMATS;
[helpcontext(84164)]
typedef enum CONST_DINPUTERR{
DI_OK = 0,
DI_NOTATTACHED =1,
//DI_BUFFEROVERFLOW =1, this has been remmapped
DI_PROPNOEFFECT =1,
DI_NOEFFECT =1,
DI_POLLEDDEVICE =2,
DI_DOWNLOADSKIPPED =3,
DI_EFFECTRESTARTED =4,
DI_SETTINGSNOTSAVED =11,
DI_TRUNCATED =8,
DI_TRUNCATEDANDRESTARTED =12,
DI_WRITEPROTECT =0x13,
DI_BUFFEROVERFLOW = 0x80040260,
//DIERR_INVALIDHANDLE = 0x80070006,
DIERR_OLDDIRECTINPUTVERSION = 0x8007047E,
DIERR_BETADIRECTINPUTVERSION = 0x80070481,
DIERR_BADDRIVERVER = 0x80070077,
DIERR_DEVICENOTREG = 0x80040154,
DIERR_NOTFOUND = 0x80070002,
DIERR_OBJECTNOTFOUND = 0x80070002,
DIERR_INVALIDPARAM = 5, //0x80070057,
DIERR_NOINTERFACE =430,// 0x80004002,
DIERR_GENERIC = 0x80004005,
DIERR_OUTOFMEMORY = 7, //0x8007000E,
DIERR_UNSUPPORTED = 445 ,//0x80004001,
DIERR_NOTINITIALIZED = 0x80070015,
DIERR_ALREADYINITIALIZED = 0x800704DF,
DIERR_INPUTLOST = 0x8007001E,
DIERR_ACQUIRED = 0x800700AA,
DIERR_NOTACQUIRED = 0x8007000C,
DIERR_NOAGGREGATION = 0x80004002,
DIERR_OTHERAPPHASPRIO = 0x80070005,
DIERR_READONLY = 0x80070005,
DIERR_HANDLEEXISTS = 0x80070005,
E_PENDING = 0x8000000A,
DIERR_INSUFFICIENTPRIVS = 0x80040200,
DIERR_DEVICEFULL = 0x80040201,
DIERR_MOREDATA = 0x80040202,
DIERR_NOTDOWNLOADED = 0x80040203,
DIERR_HASEFFECTS = 0x80040204,
DIERR_NOTEXCLUSIVEACQUIRED = 0x80040205,
DIERR_INCOMPLETEEFFECT = 0x80040206,
DIERR_NOTBUFFERED = 0x80040207,
DIERR_EFFECTPLAYING = 0x80040208,
DIERR_UNPLUGGED = 0x80040209,
DIERR_REPORTFULL= 0x8004020A,
DIERR_MAPFILEFAIL = 0x8004020B,
} CONST_DINPUTERR;
[helpcontext(84157)]
typedef enum CONST_DIJOYSTICKOFS {
DIJOFS_X =0,
DIJOFS_Y =4,
DIJOFS_Z =8,
DIJOFS_RX =12,
DIJOFS_RY =16,
DIJOFS_RZ =20,
DIJOFS_SLIDER0 =24,
DIJOFS_SLIDER1 =28,
DIJOFS_POV0 =32,
DIJOFS_POV1 =36,
DIJOFS_POV2 =40,
DIJOFS_POV3 =44,
DIJOFS_BUTTON0 =48,
DIJOFS_BUTTON1 =49,
DIJOFS_BUTTON2 =50,
DIJOFS_BUTTON3 =51,
DIJOFS_BUTTON4 =52,
DIJOFS_BUTTON5 =53,
DIJOFS_BUTTON6 =54,
DIJOFS_BUTTON7 =55,
DIJOFS_BUTTON8 =56,
DIJOFS_BUTTON9 =57,
DIJOFS_BUTTON10 =58,
DIJOFS_BUTTON11 =59,
DIJOFS_BUTTON12 =60,
DIJOFS_BUTTON13 =61,
DIJOFS_BUTTON14 =62,
DIJOFS_BUTTON15 =63,
DIJOFS_BUTTON16 =64,
DIJOFS_BUTTON17 =65,
DIJOFS_BUTTON18 =66,
DIJOFS_BUTTON19 =67,
DIJOFS_BUTTON20 =68,
DIJOFS_BUTTON21 =69,
DIJOFS_BUTTON22 =70,
DIJOFS_BUTTON23 =71,
DIJOFS_BUTTON24 =72,
DIJOFS_BUTTON25 =73,
DIJOFS_BUTTON26 =74,
DIJOFS_BUTTON27 =75,
DIJOFS_BUTTON28 =76,
DIJOFS_BUTTON29 =77,
DIJOFS_BUTTON30 =78,
DIJOFS_BUTTON31 =79
} CONST_DIJOYSTICKOFS;
[helpcontext(84149)]
typedef enum CONST_DIEFTFLAGS {
DIEFT_ALL = 0x00000000,
DIEFT_CONSTANTFORCE = 0x00000001,
DIEFT_RAMPFORCE = 0x00000002,
DIEFT_PERIODIC = 0x00000003,
DIEFT_CONDITION = 0x00000004,
DIEFT_CUSTOMFORCE = 0x00000005,
DIEFT_HARDWARE = 0x000000FF,
DIEFT_FFATTACK = 0x00000200,
DIEFT_FFFADE = 0x00000400,
DIEFT_SATURATION = 0x00000800,
DIEFT_POSNEGCOEFFICIENTS = 0x00001000,
DIEFT_POSNEGSATURATION = 0x00002000,
DIEFT_DEADBAND = 0x00004000,
DIEFT_STARTDELAY = 0x00008000,
//DIEFT_PREDEFMIN = 0x00000001,
//DIEFT_PREDEFMAX = 0x00000005,
//DIEFT_TYPEMASK = 0x000000FF,
//DIEFT_FORCEFEEDBACK = 0x00000100,
//DIEFT_VALIDFLAGS = 0x0000FE00,
//DIEFT_ENUMVALID = 0x040000FF,
} CONST_DIEFTFLAGS;
[helpcontext(84148)]
typedef enum CONST_DIEFFFLAGS {
DIEFF_OBJECTIDS = 0x00000001,
DIEFF_OBJECTOFFSETS = 0x00000002,
DIEFF_CARTESIAN = 0x00000010,
DIEFF_POLAR = 0x00000020,
DIEFF_SPHERICAL = 0x00000040,
//These flags are internal to DInput
//
//DIEFF_SPHERICAL = 0x00000040,
//DIEFFECT_MAXAXES =32,
//DIEFF_OBJECTMASK =3,
//DIEFF_ANGULAR =0x00000060,
//DIEFF_COORDMASK =0x00000070,
//DIEFF_REGIONANGULAR =0x00006000,
//DIEFF_REGIONCOORDMASK =0x00000070,
//DIEFF_VALID =0x00000073,
} CONST_DIEFFFLAGS;
[helpcontext(84152)]
typedef enum CONST_DIEPFLAGS {
DIEP_DURATION = 0x00000001,
DIEP_SAMPLEPERIOD = 0x00000002,
DIEP_GAIN = 0x00000004,
DIEP_TRIGGERBUTTON = 0x00000008,
DIEP_TRIGGERREPEATINTERVAL= 0x00000010,
DIEP_AXES = 0x00000020,
DIEP_DIRECTION = 0x00000040,
DIEP_ENVELOPE = 0x00000080,
DIEP_TYPESPECIFICPARAMS = 0x00000100,
DIEP_ALLPARAMS = 0x000003FF,
DIEP_START = 0x20000000,
DIEP_NORESTART = 0x40000000,
DIEP_NODOWNLOAD = 0x80000000,
//DIEP_NOTRIGGER = 0xFFFFFFFF,
DIEP_STARTDELAY = 0x00000200,
//DIEP_GETVALID = 0x000003FF,
//DIEP_SETVALID = 0xE00003FF,
//DIEP_USESOBJECTS = 0x00000028,
//DIEP_USESCOORDS = 0x00000040,
//DIEP_VALID = 0x80000001,
//DIEP_DRIVER = 0x00000001,
} CONST_DIEPFLAGS;
[helpcontext(84150)]
typedef enum CONST_DIEGESFLAGS {
DIEGES_PLAYING = 0x00000001,
DIEGES_EMULATED = 0x00000002
} CONST_DIEGESFLAGS;
[helpcontext(84153)]
typedef enum CONST_DIESFLAGS {
DIES_SOLO = 0x00000001,
DIES_NODOWNLOAD = 0x80000000
} CONST_DIESFLAGS;
[helpcontext(84168)]
typedef enum CONST_DISFFCFLAGS {
DISFFC_RESET = 0x00000001,
DISFFC_STOPALL = 0x00000002,
DISFFC_PAUSE = 0x00000004,
DISFFC_CONTINUE = 0x00000008,
DISFFC_SETACTUATORSON = 0x00000010,
DISFFC_SETACTUATORSOFF = 0x00000020,
} CONST_DISFFCFLAGS;
[helpcontext(84156)]
typedef enum CONST_DIGFFSFLAGS {
DIGFFS_EMPTY = 0x00000001,
DIGFFS_STOPPED = 0x00000002,
DIGFFS_PAUSED = 0x00000004,
DIGFFS_ACTUATORSON = 0x00000010,
DIGFFS_ACTUATORSOFF = 0x00000020,
DIGFFS_POWERON = 0x00000040,
DIGFFS_POWEROFF = 0x00000080,
DIGFFS_SAFETYSWITCHON = 0x00000100,
DIGFFS_SAFETYSWITCHOFF = 0x00000200,
DIGFFS_USERFFSWITCHON = 0x00000400,
DIGFFS_USERFFSWITCHOFF = 0x00000800,
DIGFFS_DEVICELOST = 0x80000000
} CONST_DIGFFSFLAGS;
[helpcontext(84167)]
typedef enum CONST_DISDDFLAGS {
DISDD_DEFAULT =0,
DISDD_CONTINUE = 1
} CONST_DISDDFLAGS;
[helpcontext(84137)]
typedef enum CONST_DICONDITIONFLAGS {
DICONDITION_USE_BOTH_AXES=1,
DICONDITION_USE_DIRECTION =2
} CONST_DICONDITIONFLAGS;
#endif
///////////////////////////////////////////////////////////////////////////
//
// Direct Input Structures
//
///////////////////////////////////////////////////////////////////////////
#ifdef C_ONLY
//replaced by object
[hidden, helpcontext(84849)]
typedef struct DIDEVICEINSTANCE_CDESC {
BSTR strGuidInstance;
BSTR strGuidProduct;
LONG lDevType;
BSTR strInstanceName;
BSTR strProductName;
BSTR strGuidFFDriver;
SHORT nUsagePage;
SHORT nUsage;
I_dxj_DirectInputDevice8 *device;
} DIDEVICEINSTANCE_CDESC;
//replaced by object
[hidden, helpcontext(84850)]
typedef struct DIDEVICEOBJECTINSTANCE_CDESC {
[hidden] LONG lSize;
BSTR strGuidType;
LONG lOfs;
CONST_DIDFTFLAGS lType;
CONST_DIDEVICEOBJINSTANCEFLAGS lFlags;
BSTR strName;
LONG lFFMaxForce;
LONG lFFForceResolution;
SHORT nCollectionNumber;
SHORT nDesignatorIndex;
SHORT nUsagePage;
SHORT nUsage;
LONG lDimension;
SHORT nExponent;
SHORT nReserved;
} DIDEVICEOBJECTINSTANCE_CDESC;
#endif
//
// DInput
//
[helpcontext(84122)]
typedef struct DIMOUSESTATE_CDESC {
LONG lX;
LONG lY;
LONG lZ;
BYTE Buttons[4];
} DIMOUSESTATE_CDESC;
[helpcontext(84123)]
typedef struct DIMOUSESTATE2_CDESC {
LONG lX;
LONG lY;
LONG lZ;
BYTE Buttons[8];
} DIMOUSESTATE2_CDESC;
[helpcontext(405100)]
typedef struct DIDEVCAPS_CDESC {
[hidden] LONG lSize;
CONST_DIDEVCAPSFLAGS lFlags;
LONG lDevType;
LONG lAxes;
LONG lButtons;
LONG lPOVs;
LONG lFFSamplePeriod;
LONG lFFMinTimeResolution;
LONG lFirmwareRevision;
LONG lHardwareRevision;
LONG lDriverVersion;
} DIDEVCAPS_CDESC;
[helpcontext(84116)]
typedef struct DIDEVICEOBJECTDATA_CDESC{
LONG lOfs;
LONG lData;
LONG lTimeStamp;
LONG lSequence;
LONG lUserData;
} DIDEVICEOBJECTDATA_CDESC;
[helpcontext(84128)]
typedef struct DIPROPRANGE_CDESC {
LONG lObj;
LONG lHow;
LONG lMin;
LONG lMax;
} DIPROPRANGE_CDESC;
[helpcontext(84129)]
typedef struct DIPROPSTRING_CDESC {
LONG lObj;
LONG lHow;
BSTR PropString;
} DIPROPSTRING_CDESC;
[helpcontext(84126)]
typedef struct DIPROPGUIDANDPATH_CDESC {
LONG lObj;
LONG lHow;
BSTR Guid;
BSTR Path;
} DIPROPGUIDANDPATH_CDESC;
[helpcontext(84127)]
typedef struct DIPROPLONG_CDESC {
LONG lObj;
LONG lHow;
LONG lData;
} DIPROPLONG_CDESC;
//Added for bug #41819
typedef struct CPOINT_CDESC {
LONG lp;
LONG dwLog;
} CPOINT_CDESC;
typedef struct DIPROPCPOINTS_CDESC {
LONG lObj;
LONG lHow;
LONG dwCPointsNum;
CPOINT_CDESC cp[MAXCPOINTSNUM_CDESC];
} DIPROPCPOINTS_CDESC;
typedef struct DIPROPPOINTER_CDESC {
LONG lObj;
LONG lHow;
LONG uData;
} DIPROPPOINTER_CDESC;
//End bug #41819
[helpcontext(84124)]
typedef struct DIOBJECTDATAFORMAT_CDESC {
BSTR strGuid;
LONG lOfs;
CONST_DIDFTFLAGS lType;
CONST_DIDEVICEOBJINSTANCEFLAGS lFlags;
} DIOBJECTDATAFORMAT_CDESC;
[helpcontext(405600)]
typedef struct DIDATAFORMAT_CDESC {
[hidden] LONG lSize;
LONG lObjSize;
CONST_DIDATAFORMATFLAGS lFlags;
LONG dataSize;
LONG numObjs;
[hidden] LONG pData;
} DIDATAFORMAT_CDESC;
[helpcontext(84106)]
typedef struct DIACTION_CDESC {
LONG lAppData;
LONG lSemantic;
LONG lFlags;
BSTR ActionName;
[hidden] DXGUID_CDESC guidInstance;
LONG lObjId;
LONG lHow;
} DIACTION_CDESC;
[helpcontext(84107)]
typedef struct DIACTIONFORMAT_CDESC {
[hidden] LONG lActionSize;
LONG lDataSize;
BSTR ActionMapName;
BSTR guidActionMap;
LONG lGenre;
LONG lAxisMin;
LONG lAxisMax;
LONG lBufferSize;
LONG lActionCount;
SAFEARRAY(DIACTION_CDESC) ActionArray;
} DIACTIONFORMAT_CDESC;
[helpcontext(84108)]
typedef struct DICOLORSET_CDESC {
LONG cTextFore;
LONG cTextHighlight;
LONG cCalloutLine;
LONG cCalloutHighlight;
LONG cBorder;
LONG cControlFill;
LONG cHighlightFill;
LONG cAreaFill;
} DICOLORSET_CDESC;
[helpcontext(84118)]
typedef struct DICONFIGUREDEVICESPARAMS_CDESC {
LONG UserCount;
SAFEARRAY(BSTR) UserNames;
LONG FormatCount;
SAFEARRAY(DIACTIONFORMAT_CDESC) ActionFormats;
#ifdef _WIN64
HWND hwnd;
#else
LONG hwnd;
#endif
DICOLORSET_CDESC dics;
IUnknown *DDSTarget;
} DICONFIGUREDEVICESPARAMS_CDESC;
[helpcontext(84121)]
typedef struct DIKEYBOARDSTATE_CDESC {
Byte key[256];
} DIKEYBOARDSTATE_CDESC;
[helpcontext(84119)]
typedef struct DIJOYSTATE_CDESC {
LONG x;
LONG y;
LONG z;
LONG rx;
LONG ry;
LONG rz;
LONG slider[2];
LONG POV[4];
Byte buttons[32];
} DIJOYSTATE_CDESC;
[helpcontext(84120)]
typedef struct DIJOYSTATE2_CDESC {
LONG x;
LONG y;
LONG z;
LONG rx;
LONG ry;
LONG rz;
LONG slider[2];
LONG POV[4];
Byte buttons[128];
LONG vx;
LONG vy;
LONG vz;
LONG vrx;
LONG vry;
LONG vrz;
LONG vslider[2];
LONG ax;
LONG ay;
LONG az;
LONG arx;
LONG ary;
LONG arz;
LONG aslider[2];
LONG fx;
LONG fy;
LONG fz;
LONG frx;
LONG fry;
LONG frz;
LONG fslider[2];
} DIJOYSTATE2_CDESC;
[helpcontext(84818)]
typedef struct DIENVELOPE_CDESC {
[hidden] LONG lSize;
LONG lAttackLevel;
LONG lAttackTime;
LONG lFadeLevel;
LONG lFadeTime;
} DIENVELOPE_CDESC;
[helpcontext(84130)]
typedef struct DIRAMPFORCE_CDESC {
LONG lRangeStart; //ramp force
LONG lRangeEnd; //ramp force
} DIRAMPFORCE_CDESC;
[helpcontext(84125)]
typedef struct DIPERIODICFORCE_CDESC {
LONG lMagnitude; //periodic
LONG lOffset; //periodic
LONG lPhase; //periodic
LONG lPeriod; //periodic
} DIPERIODICFORCE_CDESC;
[helpcontext(408000)]
typedef struct DICONDITION_CDESC {
LONG lOffset; //condition
LONG lPositiveCoefficient; //condition
LONG lNegativeCoefficient; //condition
LONG lPositiveSaturation; //condition
LONG lNegativeSaturation; //condition
LONG lDeadBand; //condition
//VARIANT_BOOL bDirectional; //condition
} DICONDITION_CDESC;
[helpcontext(84111)]
typedef struct DICONSTANTFORCE_CDESC {
LONG lMagnitude;
} DICONSTANTFORCE_CDESC;
//replaced by object
[hidden, helpcontext(84853)]
typedef struct DIAXISOFFSETS_CDESC{
LONG x;
LONG y;
} DIAXISOFFSETS_CDESC;
[helpcontext(84117)]
typedef struct DIEFFECT_CDESC {
[hidden] LONG dwSize;
LONG lFlags; //dwTriggerButton and rgdwAxes
//use DIEFF_OBJECTIDS
// DIEFF_OBJECTOFFSETS
//rglDirection
//depends DIEFF_CARTESIAN
// DIEFF_POLAR
// DIEFF_SPHERICAL
LONG lDuration; //durration of the effect
LONG lSamplePeriod; //period
LONG lGain; //magnitude???
LONG lTriggerButton; //DIEFF_OBJECTIDS
LONG lTriggerRepeatInterval;
[hidden] LONG cAxes; //4
[hidden] LONG lprgdwAxes; //DIEFF_OBJECTIDS
//
[hidden] LONG lprglDirection;
[hidden] LONG lpEnvelope;
[hidden] LONG cbTypeSpecificParams;
[hidden] LONG lpvTypeSpecificParams;
LONG lStartDelay;
LONG x; // x
LONG y; // y
DIRAMPFORCE_CDESC rampForce;
DIPERIODICFORCE_CDESC periodicForce;
DICONSTANTFORCE_CDESC constantForce;
DICONDITION_CDESC conditionX;
DICONDITION_CDESC conditionY;
CONST_DICONDITIONFLAGS conditionFlags;
BOOL bUseEnvelope;
DIENVELOPE_CDESC envelope;
[hidden] DIAXISOFFSETS_CDESC axisOffsets;
} DIEFFECT_CDESC;
[helpcontext(84114)]
typedef struct DIDEVICEIMAGEINFO_CDESC {
BSTR ImagePath;
LONG Flags;
LONG ViewID;
RECT_CDESC OverlayRect;
LONG ObjId;
LONG ValidPts;
POINT_CDESC CalloutLine[5];
RECT_CDESC CalloutRect;
LONG TextAlign;
} DIDEVICEIMAGEINFO_CDESC;
[helpcontext(84115)]
typedef struct DIDEVICEIMAGEINFOHEADER_CDESC
{
LONG Views;
LONG Buttons;
LONG Axes;
LONG POVs;
LONG ImageCount;
SAFEARRAY(DIDEVICEIMAGEINFO_CDESC) Images;
} DIDEVICEIMAGEINFOHEADER_CDESC;
///////////////////////////////////////////////////////////////////////////
//
// Direct Input Interfaces
//
///////////////////////////////////////////////////////////////////////////
[
object,
uuid(819D20C1-8AD2-11d3-AC85-00C04FC2C602),
helpstring("I_dxj_DirectInput8 Interface"),
pointer_default(unique),
local,
helpcontext(313800)
]
interface I_dxj_DirectInput8 : IUnknown
{
import "oaidl.idl";
[hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
[hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
[helpcontext(84029)] HRESULT createDevice([in] BSTR guid, [out,retval] I_dxj_DirectInputDevice8 **dev);
[helpcontext(84027)] HRESULT getDIDevices([in] CONST_DI8DEVICETYPE deviceType, [in] CONST_DIENUMDEVICESFLAGS flags, [out,retval] I_dxj_DIEnumDevices8 **retVal);
[helpcontext(84026)] HRESULT GetDeviceStatus([in] BSTR guid, [out,retval] VARIANT_BOOL *status);
#ifdef _WIN64
[helpcontext(84028)] HRESULT RunControlPanel([in] HWND hwndOwner);
#else
[helpcontext(84028)] HRESULT RunControlPanel([in] LONG hwndOwner);
#endif
[helpcontext(84025)] HRESULT getDevicesBySemantics([in] BSTR str1, [in] DIACTIONFORMAT_CDESC *format, [in] LONG flags, [out,retval] I_dxj_DIEnumDevices8 **ret);
[helpcontext(84023)] HRESULT ConfigureDevices (
#ifdef _WIN64
[in] HANDLE hEvent,
#else
[in] LONG hEvent,
#endif
[in] DICONFIGUREDEVICESPARAMS_CDESC *CDParams,
[in] LONG flags);
//Do we need Find Device?
};
[
object,
uuid(819D20C2-8AD2-11d3-AC85-00C04FC2C602),,
helpstring("I_dxj_DirectInputDeviceInstance8 Interface"),
pointer_default(unique),
local,
helpcontext(314000)
]
interface I_dxj_DirectInputDeviceInstance8 : IUnknown
{
[helpcontext(84066)] HRESULT getGuidInstance([out,retval] BSTR *ret);
[helpcontext(84067)] HRESULT getGuidProduct([out,retval] BSTR *ret);
[helpcontext(84069)] HRESULT getProductName([out,retval] BSTR *ret);
[helpcontext(84068)] HRESULT getInstanceName([out,retval] BSTR *ret);
[helpcontext(84065)] HRESULT getGuidFFDriver([out,retval] BSTR *ret);
[helpcontext(84071)] HRESULT getUsagePage([out,retval] SHORT *ret);
[helpcontext(84070)] HRESULT getUsage([out,retval] SHORT *ret);
[helpcontext(84064)] HRESULT getDevType([out,retval] LONG *ret);
};
[
object,
uuid(9F76FA05-8E92-11d1-8808-00C04FC2C602),
helpstring("I_dxj_DirectInputDeviceObjectInstance Interface"),
pointer_default(unique),
local,
helpcontext(314200)
]
interface I_dxj_DirectInputDeviceObjectInstance : IUnknown
{
[helpcontext(84078)] HRESULT getGuidType([out,retval] BSTR *ret);
[helpcontext(84080)] HRESULT getOfs([out,retval] LONG *ret);
[helpcontext(84081)] HRESULT getType([out,retval] LONG *ret);
[helpcontext(84077)] HRESULT getFlags([out,retval] CONST_DIDEVICEOBJINSTANCEFLAGS *ret);
[helpcontext(84079)] HRESULT getName([out,retval] BSTR *ret);
[helpcontext(84073)] HRESULT getCollectionNumber([out,retval] SHORT *ret);
[helpcontext(84074)] HRESULT getDesignatorIndex([out,retval] SHORT *ret);
[helpcontext(84083)] HRESULT getUsagePage([out,retval] SHORT *ret);
[helpcontext(84082)] HRESULT getUsage([out,retval] SHORT *ret);
[helpcontext(84075)] HRESULT getDimension([out,retval] LONG *ret);
[helpcontext(84076)] HRESULT getExponent([out,retval] SHORT *ret);
};
#if 0
[
object,
uuid(952E7826-33B4-4f62-92D4-AB7F15D26748),
helpstring("I_dxj_DirectInputFileEffects8 Interface"),
pointer_default(unique),
local,
helpcontext(94400)
]
interface I_dxj_DirectInputFileEffects8 : IUnknown
{
[helpcontext(81076)] HRESULT GetCount([out,retval] LONG *c);
[helpcontext(80076)] HRESULT GetName([in] LONG,[out,retval] BSTR *ret);
[helpcontext(80476)] HRESULT GetEffect([in] LONG index, [out] DIEFFECT_CDESC *effect);
[helpcontext(80176)] HRESULT GetGuid([in] LONG index, [out,retval] BSTR *ret);
[helpcontext(80276)] HRESULT AddEffect([in] BSTR name, [in] BSTR guid,[in] DIEFFECT_CDESC *effect);
[helpcontext(80376)] HRESULT Empty();
}
#endif
[
object,
uuid(819D20C3-8AD2-11d3-AC85-00C04FC2C602),
helpstring("I_dxj_DirectInputDevice8 Interface"),
pointer_default(unique),
local,
helpcontext(314400)
]
interface I_dxj_DirectInputDevice8 : IUnknown
{
import "oaidl.idl";
[hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
[hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
[helpcontext(84030)] HRESULT acquire();
[helpcontext(84038)] HRESULT getDeviceObjectsEnum([in] CONST_DIDFTFLAGS flags,[out,retval] I_dxj_DIEnumDeviceObjects **ppret);
[helpcontext(84035)] HRESULT getCapabilities([in,out] DIDEVCAPS_CDESC *caps);
[helpcontext(84036)] HRESULT getDeviceData( [in,out] SAFEARRAY(DIDEVICEOBJECTDATA_CDESC) *deviceObjectDataArray,[in] CONST_DIDGDDFLAGS flags,[out,retval] LONG *c);
[helpcontext(84363)] HRESULT getDeviceInfo([out,retval] I_dxj_DirectInputDeviceInstance8 **deviceInstance);
[helpcontext(84042)] HRESULT getDeviceStateKeyboard ([in,out] DIKEYBOARDSTATE_CDESC *state);
[helpcontext(84043)] HRESULT getDeviceStateMouse ([in,out] DIMOUSESTATE_CDESC *state);
[helpcontext(84044)] HRESULT getDeviceStateMouse2 ([in,out] DIMOUSESTATE2_CDESC *state);
[helpcontext(84040)] HRESULT getDeviceStateJoystick ([in,out] DIJOYSTATE_CDESC *state);
[helpcontext(84041)] HRESULT getDeviceStateJoystick2 ([in,out] DIJOYSTATE2_CDESC *state);
[helpcontext(84039)] HRESULT getDeviceState([in] LONG cb, [in] void* state);
[helpcontext(84072)] HRESULT getObjectInfo( [in] LONG obj, [in] CONST_DIPHFLAGS how, [out,retval] I_dxj_DirectInputDeviceObjectInstance **ret);
[helpcontext(84050)] HRESULT getProperty([in] BSTR guid,[out] void *propertyInfo);
#ifdef _WIN64
[helpcontext(84052)] HRESULT runControlPanel([in] HWND hwnd);
[helpcontext(84057)] HRESULT setCooperativeLevel([in] HWND hwnd, [in] CONST_DISCLFLAGS flags);
#else
[helpcontext(84052)] HRESULT runControlPanel([in] LONG hwnd);
[helpcontext(84057)] HRESULT setCooperativeLevel([in] LONG hwnd, [in] CONST_DISCLFLAGS flags);
#endif
[helpcontext(84056)] HRESULT setCommonDataFormat([in] CONST_DICOMMONDATAFORMATS format);
[helpcontext(84058)] HRESULT setDataFormat([in] DIDATAFORMAT_CDESC *format,SAFEARRAY(DIOBJECTDATAFORMAT_CDESC) * formatArray);
#ifdef _WIN64
[helpcontext(84059)] HRESULT setEventNotification([in] HANDLE hEvent);
#else
[helpcontext(84059)] HRESULT setEventNotification([in] LONG hEvent);
#endif
[helpcontext(84360)] HRESULT setProperty([in] BSTR guid,[in] void *propertyInfo);
[helpcontext(84361)] HRESULT unacquire();
[helpcontext(84051)] HRESULT poll();
[helpcontext(84033)] HRESULT createEffect(
[in] BSTR effectGuid,
[in] DIEFFECT_CDESC *effectinfo,
[out,retval] I_dxj_DirectInputEffect **ret);
[helpcontext(84032)] HRESULT createCustomEffect(
[in] DIEFFECT_CDESC *effectinfo,
[in] LONG channels,
[in] LONG samplePeriod,
[in] LONG nSamples,
[in] SAFEARRAY(LONG) *sampledata,
[out,retval] I_dxj_DirectInputEffect **ret);
[helpcontext(84053)] HRESULT sendDeviceData([in] LONG count,[in] SAFEARRAY(DIDEVICEOBJECTDATA_CDESC) *data, [in] CONST_DISDDFLAGS flags, [out,retval] LONG *retcount);
[helpcontext(84054)] HRESULT sendForceFeedbackCommand([in] CONST_DISFFCFLAGS flags);
[helpcontext(84046)] HRESULT getForceFeedbackState([out,retval] CONST_DIGFFSFLAGS *state);
[helpcontext(84099)] HRESULT getEffectsEnum([in] CONST_DIEFTFLAGS effType,[out,retval] I_dxj_DirectInputEnumEffects **ret);
[helpcontext(84031)] HRESULT BuildActionMap([in,out] DIACTIONFORMAT_CDESC *format, [in] BSTR username, [in] LONG flags );
[helpcontext(84055)] HRESULT SetActionMap([in,out] DIACTIONFORMAT_CDESC *format, [in] BSTR username, [in] LONG flags );
[helpcontext(84047)] HRESULT GetImageInfo([out] DIDEVICEIMAGEINFOHEADER_CDESC *info);
[helpcontext(84048)] HRESULT GetImageInfoCount([out,retval] LONG *c);
[helpcontext(84062)] HRESULT WriteEffectToFile( [in] BSTR filename,[in] LONG flags, [in] BSTR guid, [in] BSTR name, [in] DIEFFECT_CDESC *CoverEffect);
[helpcontext(84084)] HRESULT CreateEffectFromFile([in] BSTR filename, [in] LONG flags, [in] BSTR effectName,[out,retval] I_dxj_DirectInputEffect **ret);
};
[
object,
uuid(BCAA7DA9-F7EF-11d2-93FD-00C04FC2C602),
helpstring("I_dxj_DirectInputEffect Interface"),
pointer_default(unique),
local,
helpcontext(314600)
]
interface I_dxj_DirectInputEffect : IUnknown
{
import "oaidl.idl";
[hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
[hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
[helpcontext(84085)] HRESULT download();
[helpcontext(84086)] HRESULT getEffectGuid([out,retval] BSTR *guid);
[helpcontext(84087)] HRESULT getEffectStatus([out,retval] LONG *ret);
[helpcontext(84890)] HRESULT start([in] LONG iterations, [in] LONG flags);
[helpcontext(84891)] HRESULT stop();
[helpcontext(84892)] HRESULT unload();
[helpcontext(84089)] HRESULT setParameters([in] DIEFFECT_CDESC *effectinfo,[in] CONST_DIEPFLAGS flags);
[helpcontext(84088)] HRESULT getParameters([in,out] DIEFFECT_CDESC *effectinfo);
};
[
object,
uuid(BCAA7DAA-F7EF-11d2-93FD-00C04FC2C602),
helpstring("I_dxj_DirectInputEnumEffects Interface"),
pointer_default(unique),
local,
helpcontext(314800)
]
interface I_dxj_DirectInputEnumEffects : IUnknown
{
import "oaidl.idl";
[helpcontext(84100)] HRESULT getCount([out,retval] LONG *ret);
[helpcontext(84102)] HRESULT getEffectGuid([in] LONG i,[out,retval] BSTR *ret);
[helpcontext(84105)] HRESULT getType([in] LONG i,[out,retval] CONST_DIEFTFLAGS *ret);
[helpcontext(84104)] HRESULT getStaticParams([in] LONG i,[out,retval] CONST_DIEPFLAGS *ret);
[helpcontext(84101)] HRESULT getDynamicParams([in] LONG i,[out,retval] CONST_DIEPFLAGS *ret);
[helpcontext(84103)] HRESULT getName([in] LONG i, [out,retval] BSTR *ret);
};
[
object,
uuid(9F76FA08-8E92-11d1-8808-00C04FC2C602),
helpstring("I_dxj_DIEnumDeviceObjects Interface"),
pointer_default(unique),
local,
helpcontext(315000)
]
interface I_dxj_DIEnumDeviceObjects : IUnknown
{
import "oaidl.idl";
[helpcontext(84095)] HRESULT getItem( [in]LONG index, [out,retval] I_dxj_DirectInputDeviceObjectInstance **info);
[helpcontext(84394)] HRESULT getCount([out,retval]LONG *count);
};
[
object,
uuid(819D20C4-8AD2-11d3-AC85-00C04FC2C602),
helpstring("I_dxj_DIEnumDevices8 Interface"),
pointer_default(unique),
local,
helpcontext(315200)
]
interface I_dxj_DIEnumDevices8 : IUnknown
{
import "oaidl.idl";
[helpcontext(84098)] HRESULT getItem( [in]LONG index, [out,retval] I_dxj_DirectInputDeviceInstance8 **info);
[helpcontext(84097)] HRESULT getCount([out,retval]LONG *count);
};