⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dinput.h

📁 quake的sdl移植
💻 H
📖 第 1 页 / 共 3 页
字号:
/**************************************************************************** * *  Copyright (C) 1996 Microsoft Corporation.  All Rights Reserved. * *  File:       dinput.h *  Content:    DirectInput include file * ****************************************************************************/#ifndef __DINPUT_INCLUDED__#define __DINPUT_INCLUDED__#ifdef _WIN32#define COM_NO_WINDOWS_H#include <objbase.h>#endif#ifdef __cplusplusextern "C" {#endif#define DIRECTINPUT_VERSION         0x0300/**************************************************************************** * *      Class IDs * ****************************************************************************/DEFINE_GUID(CLSID_DirectInput,      0x25E609E0,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(CLSID_DirectInputDevice,0x25E609E1,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);/**************************************************************************** * *      Interfaces * ****************************************************************************/DEFINE_GUID(IID_IDirectInputA,     0x89521360,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(IID_IDirectInputW,     0x89521361,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(IID_IDirectInputDeviceA,0x5944E680,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(IID_IDirectInputDeviceW,0x5944E681,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);/**************************************************************************** * *      Predefined object types * ****************************************************************************/DEFINE_GUID(GUID_XAxis,   0xA36D02E0,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(GUID_YAxis,   0xA36D02E1,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(GUID_ZAxis,   0xA36D02E2,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(GUID_RAxis,   0xA36D02E3,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(GUID_UAxis,   0xA36D02E4,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(GUID_VAxis,   0xA36D02E5,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(GUID_Button,  0xA36D02F0,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(GUID_Key,     0x55728220,0xD33C,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(GUID_POV,     0xA36D02F2,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);/**************************************************************************** * *      Predefined product GUIDs * ****************************************************************************/DEFINE_GUID(GUID_SysMouse,   0x6F1D2B60,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);DEFINE_GUID(GUID_SysKeyboard,0x6F1D2B61,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);/**************************************************************************** * *      Interfaces and Structures... * ****************************************************************************//**************************************************************************** * *      IDirectInputDevice * ****************************************************************************/#define DIDEVTYPE_DEVICE    1#define DIDEVTYPE_MOUSE     2#define DIDEVTYPE_KEYBOARD  3#define DIDEVTYPE_JOYSTICK  4#define DIDEVTYPEMOUSE_UNKNOWN          1#define DIDEVTYPEMOUSE_TRADITIONAL      2#define DIDEVTYPEMOUSE_FINGERSTICK      3#define DIDEVTYPEMOUSE_TOUCHPAD         4#define DIDEVTYPEMOUSE_TRACKBALL        5#define DIDEVTYPEKEYBOARD_PCXT          1#define DIDEVTYPEKEYBOARD_OLIVETTI      2#define DIDEVTYPEKEYBOARD_PCAT          3#define DIDEVTYPEKEYBOARD_PCENH         4#define DIDEVTYPEKEYBOARD_NOKIA1050     5#define DIDEVTYPEKEYBOARD_NOKIA9140     6#define DIDEVTYPEKEYBOARD_NEC98         7#define DIDEVTYPEKEYBOARD_NEC98LAPTOP   8#define DIDEVTYPEKEYBOARD_NEC98106      9#define DIDEVTYPEKEYBOARD_JAPAN106     10#define DIDEVTYPEKEYBOARD_JAPANAX      11#define DIDEVTYPEKEYBOARD_J3100        12#define GET_DIDEVICE_TYPE(dwDevType)    LOBYTE(dwDevType)#define GET_DIDEVICE_SUBTYPE(dwDevType) HIBYTE(dwDevType)typedef struct _DIDEVCAPS {    DWORD   dwSize;    DWORD   dwFlags;    DWORD   dwDevType;    DWORD   dwAxes;    DWORD   dwButtons;    DWORD   dwPOVs;} DIDEVCAPS, *LPDIDEVCAPS;#define DIDC_ATTACHED           0x00000001#define DIDC_POLLEDDEVICE       0x00000002#define DIDFT_ALL           0x00000000#define DIDFT_RELAXIS       0x00000001#define DIDFT_ABSAXIS       0x00000002#define DIDFT_AXIS          0x00000003#define DIDFT_PSHBUTTON     0x00000004#define DIDFT_TGLBUTTON     0x00000008#define DIDFT_BUTTON        0x0000000C#define DIDFT_POV           0x00000010#define DIDFT_ANYINSTANCE   0x0000FF00#define DIDFT_MAKEINSTANCE(n) ((BYTE)(n) << 8)#define DIDFT_GETTYPE(n)     LOBYTE(n)#define DIDFT_GETINSTANCE(n) HIBYTE(n)typedef struct _DIOBJECTDATAFORMAT {    const GUID *pguid;    DWORD   dwOfs;    DWORD   dwType;    DWORD   dwFlags;} DIOBJECTDATAFORMAT, *LPDIOBJECTDATAFORMAT;typedef const DIOBJECTDATAFORMAT *LPCDIOBJECTDATAFORMAT;typedef struct _DIDATAFORMAT {    DWORD   dwSize;    DWORD   dwObjSize;    DWORD   dwFlags;    DWORD   dwDataSize;    DWORD   dwNumObjs;    LPDIOBJECTDATAFORMAT rgodf;} DIDATAFORMAT, *LPDIDATAFORMAT;typedef const DIDATAFORMAT *LPCDIDATAFORMAT;#define DIDF_ABSAXIS            0x00000001#define DIDF_RELAXIS            0x00000002extern const DIDATAFORMAT c_dfDIMouse;extern const DIDATAFORMAT c_dfDIKeyboard;typedef struct DIDEVICEOBJECTINSTANCEA {    DWORD   dwSize;    GUID    guidType;    DWORD   dwOfs;    DWORD   dwType;    DWORD   dwFlags;    CHAR    tszName[MAX_PATH];} DIDEVICEOBJECTINSTANCEA, *LPDIDEVICEOBJECTINSTANCEA;typedef struct DIDEVICEOBJECTINSTANCEW {    DWORD   dwSize;    GUID    guidType;    DWORD   dwOfs;    DWORD   dwType;    DWORD   dwFlags;    WCHAR   tszName[MAX_PATH];} DIDEVICEOBJECTINSTANCEW, *LPDIDEVICEOBJECTINSTANCEW;#ifdef UNICODEtypedef DIDEVICEOBJECTINSTANCEW DIDEVICEOBJECTINSTANCE;typedef LPDIDEVICEOBJECTINSTANCEW LPDIDEVICEOBJECTINSTANCE;#elsetypedef DIDEVICEOBJECTINSTANCEA DIDEVICEOBJECTINSTANCE;typedef LPDIDEVICEOBJECTINSTANCEA LPDIDEVICEOBJECTINSTANCE;#endif // UNICODEtypedef const DIDEVICEOBJECTINSTANCEA *LPCDIDEVICEOBJECTINSTANCEA;typedef const DIDEVICEOBJECTINSTANCEW *LPCDIDEVICEOBJECTINSTANCEW;typedef const DIDEVICEOBJECTINSTANCE  *LPCDIDEVICEOBJECTINSTANCE;typedef BOOL (FAR PASCAL * LPDIENUMDEVICEOBJECTSCALLBACKA)(LPCDIDEVICEOBJECTINSTANCEA, LPVOID);typedef BOOL (FAR PASCAL * LPDIENUMDEVICEOBJECTSCALLBACKW)(LPCDIDEVICEOBJECTINSTANCEW, LPVOID);#ifdef UNICODE#define LPDIENUMDEVICEOBJECTSCALLBACK  LPDIENUMDEVICEOBJECTSCALLBACKW#else#define LPDIENUMDEVICEOBJECTSCALLBACK  LPDIENUMDEVICEOBJECTSCALLBACKA#endif // !UNICODEtypedef struct DIPROPHEADER {    DWORD   dwSize;    DWORD   dwHeaderSize;    DWORD   dwObj;    DWORD   dwHow;} DIPROPHEADER, *LPDIPROPHEADER;typedef const DIPROPHEADER *LPCDIPROPHEADER;#define DIPH_DEVICE             0#define DIPH_BYOFFSET           1#define DIPH_BYID               2typedef struct DIPROPDWORD {    DIPROPHEADER diph;    DWORD   dwData;} DIPROPDWORD, *LPDIPROPDWORD;typedef const DIPROPDWORD *LPCDIPROPDWORD;typedef struct DIPROPRANGE {    DIPROPHEADER diph;    LONG    lMin;    LONG    lMax;} DIPROPRANGE, *LPDIPROPRANGE;typedef const DIPROPRANGE *LPCDIPROPRANGE;#define DIPROPRANGE_NOMIN       ((LONG)0x80000000)#define DIPROPRANGE_NOMAX       ((LONG)0x7FFFFFFF)#ifdef __cplusplus#define MAKEDIPROP(prop)    (*(const GUID *)(prop))#else#define MAKEDIPROP(prop)    ((REFGUID)(prop))#endif#define DIPROP_BUFFERSIZE       MAKEDIPROP(1)#define DIPROP_AXISMODE         MAKEDIPROP(2)#define DIPROPAXISMODE_ABS      0#define DIPROPAXISMODE_REL      1#define DIPROP_GRANULARITY      MAKEDIPROP(3)#define DIPROP_RANGE            MAKEDIPROP(4)typedef struct DIDEVICEOBJECTDATA {    DWORD   dwOfs;    DWORD   dwData;    DWORD   dwTimeStamp;    DWORD   dwSequence;} DIDEVICEOBJECTDATA, *LPDIDEVICEOBJECTDATA;#define DIGDD_PEEK          0x00000001#define DISEQUENCE_COMPARE(dwSequence1, cmp, dwSequence2) \                        ((int)((dwSequence1) - (dwSequence2)) cmp 0)#define DISCL_EXCLUSIVE     0x00000001#define DISCL_NONEXCLUSIVE  0x00000002#define DISCL_FOREGROUND    0x00000004#define DISCL_BACKGROUND    0x00000008typedef struct DIDEVICEINSTANCEA {    DWORD   dwSize;    GUID    guidInstance;    GUID    guidProduct;    DWORD   dwDevType;    CHAR    tszInstanceName[MAX_PATH];    CHAR    tszProductName[MAX_PATH];} DIDEVICEINSTANCEA, *LPDIDEVICEINSTANCEA;typedef struct DIDEVICEINSTANCEW {    DWORD   dwSize;    GUID    guidInstance;    GUID    guidProduct;    DWORD   dwDevType;    WCHAR   tszInstanceName[MAX_PATH];    WCHAR   tszProductName[MAX_PATH];} DIDEVICEINSTANCEW, *LPDIDEVICEINSTANCEW;#ifdef UNICODEtypedef DIDEVICEINSTANCEW DIDEVICEINSTANCE;typedef LPDIDEVICEINSTANCEW LPDIDEVICEINSTANCE;#elsetypedef DIDEVICEINSTANCEA DIDEVICEINSTANCE;typedef LPDIDEVICEINSTANCEA LPDIDEVICEINSTANCE;#endif // UNICODEtypedef const DIDEVICEINSTANCEA *LPCDIDEVICEINSTANCEA;typedef const DIDEVICEINSTANCEW *LPCDIDEVICEINSTANCEW;typedef const DIDEVICEINSTANCE  *LPCDIDEVICEINSTANCE;#undef INTERFACE#define INTERFACE IDirectInputDeviceWDECLARE_INTERFACE_(IDirectInputDeviceW, IUnknown){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -