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

📄 dinput.h

📁 quake的sdl移植
💻 H
📖 第 1 页 / 共 3 页
字号:
    /*** IUnknown methods ***/    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;    STDMETHOD_(ULONG,AddRef)(THIS) PURE;    STDMETHOD_(ULONG,Release)(THIS) PURE;    /*** IDirectInputDeviceW methods ***/    STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS) PURE;    STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKW,LPVOID,DWORD) PURE;    STDMETHOD(GetProperty)(THIS_ REFGUID,LPDIPROPHEADER) PURE;    STDMETHOD(SetProperty)(THIS_ REFGUID,LPCDIPROPHEADER) PURE;    STDMETHOD(Acquire)(THIS) PURE;    STDMETHOD(Unacquire)(THIS) PURE;    STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE;    STDMETHOD(GetDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;    STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT) PURE;    STDMETHOD(SetEventNotification)(THIS_ HANDLE) PURE;    STDMETHOD(SetCooperativeLevel)(THIS_ HWND,DWORD) PURE;    STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEW,DWORD,DWORD) PURE;    STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEW) PURE;    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;};typedef struct IDirectInputDeviceW *LPDIRECTINPUTDEVICEW;#undef INTERFACE#define INTERFACE IDirectInputDeviceADECLARE_INTERFACE_(IDirectInputDeviceA, IUnknown){    /*** IUnknown methods ***/    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;    STDMETHOD_(ULONG,AddRef)(THIS) PURE;    STDMETHOD_(ULONG,Release)(THIS) PURE;    /*** IDirectInputDeviceA methods ***/    STDMETHOD(GetCapabilities)(THIS_ LPDIDEVCAPS) PURE;    STDMETHOD(EnumObjects)(THIS_ LPDIENUMDEVICEOBJECTSCALLBACKA,LPVOID,DWORD) PURE;    STDMETHOD(GetProperty)(THIS_ REFGUID,LPDIPROPHEADER) PURE;    STDMETHOD(SetProperty)(THIS_ REFGUID,LPCDIPROPHEADER) PURE;    STDMETHOD(Acquire)(THIS) PURE;    STDMETHOD(Unacquire)(THIS) PURE;    STDMETHOD(GetDeviceState)(THIS_ DWORD,LPVOID) PURE;    STDMETHOD(GetDeviceData)(THIS_ DWORD,LPDIDEVICEOBJECTDATA,LPDWORD,DWORD) PURE;    STDMETHOD(SetDataFormat)(THIS_ LPCDIDATAFORMAT) PURE;    STDMETHOD(SetEventNotification)(THIS_ HANDLE) PURE;    STDMETHOD(SetCooperativeLevel)(THIS_ HWND,DWORD) PURE;    STDMETHOD(GetObjectInfo)(THIS_ LPDIDEVICEOBJECTINSTANCEA,DWORD,DWORD) PURE;    STDMETHOD(GetDeviceInfo)(THIS_ LPDIDEVICEINSTANCEA) PURE;    STDMETHOD(RunControlPanel)(THIS_ HWND,DWORD) PURE;    STDMETHOD(Initialize)(THIS_ HINSTANCE,DWORD,REFGUID) PURE;};typedef struct IDirectInputDeviceA *LPDIRECTINPUTDEVICEA;#ifdef UNICODE#define IID_IDirectInputDevice IID_IDirectInputDeviceW#define IDirectInputDevice IDirectInputDeviceW#define IDirectInputDeviceVtbl IDirectInputDeviceWVtbl#else#define IID_IDirectInputDevice IID_IDirectInputDeviceA#define IDirectInputDevice IDirectInputDeviceA#define IDirectInputDeviceVtbl IDirectInputDeviceAVtbl#endiftypedef struct IDirectInputDevice *LPDIRECTINPUTDEVICE;#if !defined(__cplusplus) || defined(CINTERFACE)#define IDirectInputDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)#define IDirectInputDevice_AddRef(p) (p)->lpVtbl->AddRef(p)#define IDirectInputDevice_Release(p) (p)->lpVtbl->Release(p)#define IDirectInputDevice_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)#define IDirectInputDevice_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c)#define IDirectInputDevice_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)#define IDirectInputDevice_SetProperty(p,a,b) (p)->lpVtbl->SetProperty(p,a,b)#define IDirectInputDevice_Acquire(p) (p)->lpVtbl->Acquire(p)#define IDirectInputDevice_Unacquire(p) (p)->lpVtbl->Unacquire(p)#define IDirectInputDevice_GetDeviceState(p,a,b) (p)->lpVtbl->GetDeviceState(p,a,b)#define IDirectInputDevice_GetDeviceData(p,a,b,c,d) (p)->lpVtbl->GetDeviceData(p,a,b,c,d)#define IDirectInputDevice_SetDataFormat(p,a) (p)->lpVtbl->SetDataFormat(p,a)#define IDirectInputDevice_SetEventNotification(p,a) (p)->lpVtbl->SetEventNotification(p,a)#define IDirectInputDevice_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)#define IDirectInputDevice_GetObjectInfo(p,a,b,c) (p)->lpVtbl->GetObjectInfo(p,a,b,c)#define IDirectInputDevice_GetDeviceInfo(p,a) (p)->lpVtbl->GetDeviceInfo(p,a)#define IDirectInputDevice_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)#define IDirectInputDevice_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)#endif/**************************************************************************** * *      Mouse * ****************************************************************************/typedef struct _DIMOUSESTATE {    LONG    lX;    LONG    lY;    LONG    lZ;    BYTE    rgbButtons[4];} DIMOUSESTATE, *LPDIMOUSESTATE;#define DIMOFS_X        FIELD_OFFSET(DIMOUSESTATE, lX)#define DIMOFS_Y        FIELD_OFFSET(DIMOUSESTATE, lY)#define DIMOFS_Z        FIELD_OFFSET(DIMOUSESTATE, lZ)#define DIMOFS_BUTTON0 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 0)#define DIMOFS_BUTTON1 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 1)#define DIMOFS_BUTTON2 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 2)#define DIMOFS_BUTTON3 (FIELD_OFFSET(DIMOUSESTATE, rgbButtons) + 3)/**************************************************************************** * *      Keyboard * ****************************************************************************//**************************************************************************** * *      DirectInput keyboard scan codes * ****************************************************************************/#define DIK_ESCAPE          0x01#define DIK_1               0x02#define DIK_2               0x03#define DIK_3               0x04#define DIK_4               0x05#define DIK_5               0x06#define DIK_6               0x07#define DIK_7               0x08#define DIK_8               0x09#define DIK_9               0x0A#define DIK_0               0x0B#define DIK_MINUS           0x0C    /* - on main keyboard */#define DIK_EQUALS          0x0D#define DIK_BACK            0x0E    /* backspace */#define DIK_TAB             0x0F#define DIK_Q               0x10#define DIK_W               0x11#define DIK_E               0x12#define DIK_R               0x13#define DIK_T               0x14#define DIK_Y               0x15#define DIK_U               0x16#define DIK_I               0x17#define DIK_O               0x18#define DIK_P               0x19#define DIK_LBRACKET        0x1A#define DIK_RBRACKET        0x1B#define DIK_RETURN          0x1C    /* Enter on main keyboard */#define DIK_LCONTROL        0x1D#define DIK_A               0x1E#define DIK_S               0x1F#define DIK_D               0x20#define DIK_F               0x21#define DIK_G               0x22#define DIK_H               0x23#define DIK_J               0x24#define DIK_K               0x25#define DIK_L               0x26#define DIK_SEMICOLON       0x27#define DIK_APOSTROPHE      0x28#define DIK_GRAVE           0x29    /* accent grave */#define DIK_LSHIFT          0x2A#define DIK_BACKSLASH       0x2B#define DIK_Z               0x2C#define DIK_X               0x2D#define DIK_C               0x2E#define DIK_V               0x2F#define DIK_B               0x30#define DIK_N               0x31#define DIK_M               0x32#define DIK_COMMA           0x33#define DIK_PERIOD          0x34    /* . on main keyboard */#define DIK_SLASH           0x35    /* / on main keyboard */#define DIK_RSHIFT          0x36#define DIK_MULTIPLY        0x37    /* * on numeric keypad */#define DIK_LMENU           0x38    /* left Alt */#define DIK_SPACE           0x39#define DIK_CAPITAL         0x3A#define DIK_F1              0x3B#define DIK_F2              0x3C#define DIK_F3              0x3D#define DIK_F4              0x3E#define DIK_F5              0x3F#define DIK_F6              0x40#define DIK_F7              0x41#define DIK_F8              0x42#define DIK_F9              0x43#define DIK_F10             0x44#define DIK_NUMLOCK         0x45#define DIK_SCROLL          0x46    /* Scroll Lock */#define DIK_NUMPAD7         0x47#define DIK_NUMPAD8         0x48#define DIK_NUMPAD9         0x49#define DIK_SUBTRACT        0x4A    /* - on numeric keypad */#define DIK_NUMPAD4         0x4B#define DIK_NUMPAD5         0x4C#define DIK_NUMPAD6         0x4D#define DIK_ADD             0x4E    /* + on numeric keypad */#define DIK_NUMPAD1         0x4F#define DIK_NUMPAD2         0x50#define DIK_NUMPAD3         0x51#define DIK_NUMPAD0         0x52#define DIK_DECIMAL         0x53    /* . on numeric keypad */#define DIK_F11             0x57#define DIK_F12             0x58#define DIK_F13             0x64    /*                     (NEC PC98) */#define DIK_F14             0x65    /*                     (NEC PC98) */#define DIK_F15             0x66    /*                     (NEC PC98) */#define DIK_KANA            0x70    /* (Japanese keyboard)            */#define DIK_CONVERT         0x79    /* (Japanese keyboard)            */#define DIK_NOCONVERT       0x7B    /* (Japanese keyboard)            */#define DIK_YEN             0x7D    /* (Japanese keyboard)            */#define DIK_NUMPADEQUALS    0x8D    /* = on numeric keypad (NEC PC98) */#define DIK_CIRCUMFLEX      0x90    /* (Japanese keyboard)            */#define DIK_AT              0x91    /*                     (NEC PC98) */#define DIK_COLON           0x92    /*                     (NEC PC98) */#define DIK_UNDERLINE       0x93    /*                     (NEC PC98) */#define DIK_KANJI           0x94    /* (Japanese keyboard)            */#define DIK_STOP            0x95    /*                     (NEC PC98) */#define DIK_AX              0x96    /*                     (Japan AX) */#define DIK_UNLABELED       0x97    /*                        (J3100) */#define DIK_NUMPADENTER     0x9C    /* Enter on numeric keypad */#define DIK_RCONTROL        0x9D#define DIK_NUMPADCOMMA     0xB3    /* , on numeric keypad (NEC PC98) */#define DIK_DIVIDE          0xB5    /* / on numeric keypad */#define DIK_SYSRQ           0xB7#define DIK_RMENU           0xB8    /* right Alt */#define DIK_HOME            0xC7    /* Home on arrow keypad */#define DIK_UP              0xC8    /* UpArrow on arrow keypad */#define DIK_PRIOR           0xC9    /* PgUp on arrow keypad */#define DIK_LEFT            0xCB    /* LeftArrow on arrow keypad */#define DIK_RIGHT           0xCD    /* RightArrow on arrow keypad */#define DIK_END             0xCF    /* End on arrow keypad */#define DIK_DOWN            0xD0    /* DownArrow on arrow keypad */#define DIK_NEXT            0xD1    /* PgDn on arrow keypad */#define DIK_INSERT          0xD2    /* Insert on arrow keypad */#define DIK_DELETE          0xD3    /* Delete on arrow keypad */#define DIK_LWIN            0xDB    /* Left Windows key */#define DIK_RWIN            0xDC    /* Right Windows key */#define DIK_APPS            0xDD    /* AppMenu key *//* *  Alternate names for keys, to facilitate transition from DOS. */#define DIK_BACKSPACE       DIK_BACK            /* backspace */#define DIK_NUMPADSTAR      DIK_MULTIPLY        /* * on numeric keypad */#define DIK_LALT            DIK_LMENU           /* left Alt */#define DIK_CAPSLOCK        DIK_CAPITAL         /* CapsLock */#define DIK_NUMPADMINUS     DIK_SUBTRACT        /* - on numeric keypad */#define DIK_NUMPADPLUS      DIK_ADD             /* + on numeric keypad */#define DIK_NUMPADPERIOD    DIK_DECIMAL         /* . on numeric keypad */#define DIK_NUMPADSLASH     DIK_DIVIDE          /* / on numeric keypad */#define DIK_RALT            DIK_RMENU           /* right Alt */#define DIK_UPARROW         DIK_UP              /* UpArrow on arrow keypad */#define DIK_PGUP            DIK_PRIOR           /* PgUp on arrow keypad */#define DIK_LEFTARROW       DIK_LEFT            /* LeftArrow on arrow keypad */#define DIK_RIGHTARROW      DIK_RIGHT           /* RightArrow on arrow keypad */#define DIK_DOWNARROW       DIK_DOWN            /* DownArrow on arrow keypad */#define DIK_PGDN            DIK_NEXT            /* PgDn on arrow keypad *//**************************************************************************** * *  IDirectInput * ****************************************************************************/#define DIENUM_STOP             0#define DIENUM_CONTINUE         1typedef BOOL (FAR PASCAL * LPDIENUMDEVICESCALLBACKA)(LPCDIDEVICEINSTANCEA, LPVOID);typedef BOOL (FAR PASCAL * LPDIENUMDEVICESCALLBACKW)(LPCDIDEVICEINSTANCEW, LPVOID);#ifdef UNICODE#define LPDIENUMDEVICESCALLBACK  LPDIENUMDEVICESCALLBACKW#else#define LPDIENUMDEVICESCALLBACK  LPDIENUMDEVICESCALLBACKA#endif // !UNICODE#define DIEDFL_ALLDEVICES       0x00000000#define DIEDFL_ATTACHEDONLY     0x00000001#undef INTERFACE#define INTERFACE IDirectInputWDECLARE_INTERFACE_(IDirectInputW, IUnknown){    /*** IUnknown methods ***/    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;    STDMETHOD_(ULONG,AddRef)(THIS) PURE;    STDMETHOD_(ULONG,Release)(THIS) PURE;

⌨️ 快捷键说明

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