//+------------------------------------------------------------------------- // // 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); };