Ignore:
Timestamp:
Aug 16, 2002, 5:07:10 PM (23 years ago)
Author:
sandervl
Message:

dinput update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/win/dinput.h

    r8345 r9015  
     1/*
     2 * Copyright (C) the Wine project
     3 *
     4 * This library is free software; you can redistribute it and/or
     5 * modify it under the terms of the GNU Lesser General Public
     6 * License as published by the Free Software Foundation; either
     7 * version 2.1 of the License, or (at your option) any later version.
     8 *
     9 * This library is distributed in the hope that it will be useful,
     10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12 * Lesser General Public License for more details.
     13 *
     14 * You should have received a copy of the GNU Lesser General Public
     15 * License along with this library; if not, write to the Free Software
     16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     17 */
     18
    119#ifndef __WINE_DINPUT_H
    220#define __WINE_DINPUT_H
     
    523#include "unknwn.h"
    624
    7 #define DIRECTINPUT_VERSION     0x0500
     25#ifndef DIRECTINPUT_VERSION
     26#define DIRECTINPUT_VERSION     0x0800
     27#endif
    828
    929/* Classes */
    1030DEFINE_GUID(CLSID_DirectInput,          0x25E609E0,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
    1131DEFINE_GUID(CLSID_DirectInputDevice,    0x25E609E1,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
     32
     33DEFINE_GUID(CLSID_DirectInput8,         0x25E609E4,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
     34DEFINE_GUID(CLSID_DirectInputDevice8,   0x25E609E5,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
    1235
    1336/* Interfaces */
     
    1841DEFINE_GUID(IID_IDirectInput7A,         0x9A4CB684,0x236D,0x11D3,0x8E,0x9D,0x00,0xC0,0x4F,0x68,0x44,0xAE);
    1942DEFINE_GUID(IID_IDirectInput7W,         0x9A4CB685,0x236D,0x11D3,0x8E,0x9D,0x00,0xC0,0x4F,0x68,0x44,0xAE);
     43DEFINE_GUID(IID_IDirectInput8A,         0xBF798030,0x483A,0x4DA2,0xAA,0x99,0x5D,0x64,0xED,0x36,0x97,0x00);
     44DEFINE_GUID(IID_IDirectInput8W,         0xBF798031,0x483A,0x4DA2,0xAA,0x99,0x5D,0x64,0xED,0x36,0x97,0x00);
    2045DEFINE_GUID(IID_IDirectInputDeviceA,    0x5944E680,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
    2146DEFINE_GUID(IID_IDirectInputDeviceW,    0x5944E681,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00);
     
    2449DEFINE_GUID(IID_IDirectInputDevice7A,   0x57D7C6BC,0x2356,0x11D3,0x8E,0x9D,0x00,0xC0,0x4F,0x68,0x44,0xAE);
    2550DEFINE_GUID(IID_IDirectInputDevice7W,   0x57D7C6BD,0x2356,0x11D3,0x8E,0x9D,0x00,0xC0,0x4F,0x68,0x44,0xAE);
     51DEFINE_GUID(IID_IDirectInputDevice8A,   0x54D41080,0xDC15,0x4833,0xA4,0x1B,0x74,0x8F,0x73,0xA3,0x81,0x79);
     52DEFINE_GUID(IID_IDirectInputDevice8W,   0x54D41081,0xDC15,0x4833,0xA4,0x1B,0x74,0x8F,0x73,0xA3,0x81,0x79);
    2653DEFINE_GUID(IID_IDirectInputEffect,     0xE7E1F7C0,0x88D2,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35);
    2754
     
    5986
    6087typedef struct IDirectInputA IDirectInputA,*LPDIRECTINPUTA;
     88typedef struct IDirectInputW IDirectInputW,*LPDIRECTINPUTW;
    6189typedef struct IDirectInput2A IDirectInput2A,*LPDIRECTINPUT2A;
     90typedef struct IDirectInput2W IDirectInput2W,*LPDIRECTINPUT2W;
    6291typedef struct IDirectInput7A IDirectInput7A,*LPDIRECTINPUT7A;
     92typedef struct IDirectInput7W IDirectInput7W,*LPDIRECTINPUT7W;
     93typedef struct IDirectInput8A IDirectInput8A,*LPDIRECTINPUT8A;
     94typedef struct IDirectInput8W IDirectInput8W,*LPDIRECTINPUT8W;
    6395typedef struct IDirectInputDeviceA IDirectInputDeviceA,*LPDIRECTINPUTDEVICEA;
     96typedef struct IDirectInputDeviceW IDirectInputDeviceW,*LPDIRECTINPUTDEVICEW;
    6497typedef struct IDirectInputDevice2A IDirectInputDevice2A,*LPDIRECTINPUTDEVICE2A;
     98typedef struct IDirectInputDevice2W IDirectInputDevice2W,*LPDIRECTINPUTDEVICE2W;
    6599typedef struct IDirectInputDevice7A IDirectInputDevice7A,*LPDIRECTINPUTDEVICE7A;
     100typedef struct IDirectInputDevice7W IDirectInputDevice7W,*LPDIRECTINPUTDEVICE7W;
     101typedef struct IDirectInputDevice8A IDirectInputDevice8A,*LPDIRECTINPUTDEVICE8A;
     102typedef struct IDirectInputDevice8W IDirectInputDevice8W,*LPDIRECTINPUTDEVICE8W;
    66103typedef struct IDirectInputEffect IDirectInputEffect,*LPDIRECTINPUTEFFECT;
    67104typedef struct SysKeyboardA SysKeyboardA,*LPSYSKEYBOARDA;
     
    70107#define IID_IDirectInput WINELIB_NAME_AW(IID_IDirectInput)
    71108DECL_WINELIB_TYPE_AW(LPDIRECTINPUT)
     109#define IID_IDirectInput2 WINELIB_NAME_AW(IID_IDirectInput2)
     110DECL_WINELIB_TYPE_AW(LPDIRECTINPUT2)
    72111#define IID_IDirectInput7 WINELIB_NAME_AW(IID_IDirectInput7)
    73112DECL_WINELIB_TYPE_AW(LPDIRECTINPUT7)
     
    76115#define IID_IDirectInputDevice2 WINELIB_NAME_AW(IID_IDirectInputDevice2)
    77116DECL_WINELIB_TYPE_AW(LPDIRECTINPUTDEVICE2)
     117#define IID_IDirectInputDevice7 WINELIB_NAME_AW(IID_IDirectInputDevice7)
     118DECL_WINELIB_TYPE_AW(LPDIRECTINPUTDEVICE7)
     119#define IID_IDirectInputDevice8 WINELIB_NAME_AW(IID_IDirectInputDevice8)
     120DECL_WINELIB_TYPE_AW(LPDIRECTINPUTDEVICE8)
    78121
    79122#define DI_OK                           S_OK
     
    141184#define DIEDFL_INCLUDEALIASES           0x00010000
    142185#define DIEDFL_INCLUDEPHANTOMS          0x00020000
     186#define DIEDFL_INCLUDEHIDDEN            0x00040000
    143187
    144188#define DIDEVTYPE_DEVICE                1
     
    197241    WORD        wReserved;
    198242#endif /* DIRECTINPUT_VERSION >= 0x0500 */
    199 } DIDEVICEOBJECTINSTANCEA, *LPDIDEVICEOBJECTINSTANCEA,*LPCDIDEVICEOBJECTINSTANCEA;
     243} DIDEVICEOBJECTINSTANCEA, *LPDIDEVICEOBJECTINSTANCEA;
     244typedef const DIDEVICEOBJECTINSTANCEA *LPCDIDEVICEOBJECTINSTANCEA;
    200245
    201246typedef struct {
     
    217262    WORD        wReserved;
    218263#endif /* DIRECTINPUT_VERSION >= 0x0500 */
    219 } DIDEVICEOBJECTINSTANCEW, *LPDIDEVICEOBJECTINSTANCEW,*LPCDIDEVICEOBJECTINSTANCEW;
     264} DIDEVICEOBJECTINSTANCEW, *LPDIDEVICEOBJECTINSTANCEW;
     265typedef const DIDEVICEOBJECTINSTANCEW *LPCDIDEVICEOBJECTINSTANCEW;
     266
     267DECL_WINELIB_TYPE_AW(DIDEVICEOBJECTINSTANCE)
    220268DECL_WINELIB_TYPE_AW(LPDIDEVICEOBJECTINSTANCE)
    221 DECL_WINELIB_TYPE_AW(DIDEVICEOBJECTINSTANCE)
     269DECL_WINELIB_TYPE_AW(LPCDIDEVICEOBJECTINSTANCE)
    222270
    223271
     
    234282    WORD        wUsage;
    235283#endif /* DIRECTINPUT_VERSION >= 0x0500 */
    236 } DIDEVICEINSTANCEA, *LPDIDEVICEINSTANCEA, *LPCDIDEVICEINSTANCEA;
     284} DIDEVICEINSTANCEA, *LPDIDEVICEINSTANCEA;
     285typedef const DIDEVICEINSTANCEA *LPCDIDEVICEINSTANCEA;
    237286
    238287typedef struct {
     
    248297    WORD        wUsage;
    249298#endif /* DIRECTINPUT_VERSION >= 0x0500 */
    250 } DIDEVICEINSTANCEW, *LPDIDEVICEINSTANCEW, *LPCDIDEVICEINSTANCEW;
     299} DIDEVICEINSTANCEW, *LPDIDEVICEINSTANCEW;
     300typedef const DIDEVICEINSTANCEW *LPCDIDEVICEINSTANCEW;
     301
    251302DECL_WINELIB_TYPE_AW(DIDEVICEINSTANCE)
    252303DECL_WINELIB_TYPE_AW(LPDIDEVICEINSTANCE)
     
    257308DECL_WINELIB_TYPE_AW(LPDIENUMDEVICESCALLBACK)
    258309
    259 typedef BOOL (* CALLBACK LPDIENUMDEVICEOBJECTSCALLBACKA)(LPCDIDEVICEOBJECTINSTANCEA, LPVOID);
     310#if DIRECTINPUT_VERSION >= 0x0800
     311typedef BOOL (* CALLBACK LPDIENUMDEVICESBYSEMANTICSCBA)(LPCDIDEVICEINSTANCEA,LPDIRECTINPUTDEVICE8A,DWORD,DWORD,LPVOID);
     312typedef BOOL (* CALLBACK LPDIENUMDEVICESBYSEMANTICSCBW)(LPCDIDEVICEINSTANCEW,LPDIRECTINPUTDEVICE8W,DWORD,DWORD,LPVOID);
     313DECL_WINELIB_TYPE_AW(LPDIENUMDEVICESBYSEMANTICSCB)
     314#endif
     315
     316typedef BOOL (* CALLBACK LPDICONFIGUREDEVICESCALLBACK)(LPUNKNOWN,LPVOID);
     317
     318typedef BOOL (* CALLBACK LPDIENUMDEVICEOBJECTSCALLBACKA)(LPCDIDEVICEOBJECTINSTANCEA,LPVOID);
    260319typedef BOOL (* CALLBACK LPDIENUMDEVICEOBJECTSCALLBACKW)(LPCDIDEVICEOBJECTINSTANCEW,LPVOID);
    261320DECL_WINELIB_TYPE_AW(LPDIENUMDEVICEOBJECTSCALLBACK)
     
    432491    DWORD       dwTimeStamp;
    433492    DWORD       dwSequence;
    434 } DIDEVICEOBJECTDATA,*LPDIDEVICEOBJECTDATA,*LPCDIDEVICEOBJECTDATA;
     493} DIDEVICEOBJECTDATA,*LPDIDEVICEOBJECTDATA;
     494typedef const DIDEVICEOBJECTDATA *LPCDIDEVICEOBJECTDATA;
    435495
    436496typedef struct _DIOBJECTDATAFORMAT {
     
    494554        GUID    guidClass;
    495555        WCHAR   wszPath[MAX_PATH];
    496 } DIPROPGUIDANDPATH, *LPDIPROPGUIDANDPATH,*LPCDIPROPGUIDANDPATH;
     556} DIPROPGUIDANDPATH, *LPDIPROPGUIDANDPATH;
     557typedef const DIPROPGUIDANDPATH *LPCDIPROPGUIDANDPATH;
    497558
    498559/* special property GUIDs */
     
    565626        LONG                    lMagnitude;
    566627} DICONSTANTFORCE, *LPDICONSTANTFORCE;
    567 
    568628typedef const DICONSTANTFORCE *LPCDICONSTANTFORCE;
    569629
     
    572632        LONG                    lEnd;
    573633} DIRAMPFORCE, *LPDIRAMPFORCE;
    574 
    575634typedef const DIRAMPFORCE *LPCDIRAMPFORCE;
    576635
     
    581640        DWORD                   dwPeriod;
    582641} DIPERIODIC, *LPDIPERIODIC;
    583 
    584642typedef const DIPERIODIC *LPCDIPERIODIC;
    585643
     
    592650        LONG                    lDeadBand;
    593651} DICONDITION, *LPDICONDITION;
    594 
    595652typedef const DICONDITION *LPCDICONDITION;
    596653
     
    601658        LPLONG                  rglForceData;
    602659} DICUSTOMFORCE, *LPDICUSTOMFORCE;
    603 
    604660typedef const DICUSTOMFORCE *LPCDICUSTOMFORCE;
    605661
     
    611667        DWORD                   dwFadeTime;
    612668} DIENVELOPE, *LPDIENVELOPE;
    613 
    614669typedef const DIENVELOPE *LPCDIENVELOPE;
    615670
     
    629684        LPVOID                  lpvTypeSpecificParams;
    630685} DIEFFECT, *LPDIEFFECT;
    631 
    632686typedef const DIEFFECT *LPCDIEFFECT;
    633687
     
    640694        CHAR                    tszName[MAX_PATH];
    641695} DIEFFECTINFOA, *LPDIEFFECTINFOA;
     696typedef const DIEFFECTINFOA *LPCDIEFFECTINFOA;
    642697
    643698typedef struct DIEFFECTINFOW {
     
    649704        WCHAR                   tszName[MAX_PATH];
    650705} DIEFFECTINFOW, *LPDIEFFECTINFOW;
    651 
    652 #ifdef UNICODE
    653 typedef DIEFFECTINFOW DIEFFECTINFO;
    654 typedef LPDIEFFECTINFOW LPDIEFFECTINFO;
    655 #else
    656 typedef DIEFFECTINFOA DIEFFECTINFO;
    657 typedef LPDIEFFECTINFOA LPDIEFFECTINFO;
    658 #endif
    659 
    660 typedef const DIEFFECTINFOA *LPCDIEFFECTINFOA;
    661706typedef const DIEFFECTINFOW *LPCDIEFFECTINFOW;
    662 typedef const DIEFFECTINFO  *LPCDIEFFECTINFO;
     707
     708DECL_WINELIB_TYPE_AW(DIEFFECTINFO)
     709DECL_WINELIB_TYPE_AW(LPDIEFFECTINFO)
     710DECL_WINELIB_TYPE_AW(LPCDIEFFECTINFO)
    663711
    664712typedef BOOL (* CALLBACK LPDIENUMEFFECTSCALLBACKA)(LPCDIEFFECTINFOA, LPVOID);
     
    771819} DIFILEEFFECT, *LPDIFILEEFFECT;
    772820
    773 typedef const DIFILEEFFECT *LPCDIFILEEFFECT;                                           
    774 typedef BOOL (* CALLBACK LPDIENUMEFFECTSINFILECALLBACK)(LPCDIFILEEFFECT , LPVOID);
     821typedef const DIFILEEFFECT *LPCDIFILEEFFECT;
     822typedef BOOL (* CALLBACK LPDIENUMEFFECTSINFILECALLBACK)(LPCDIFILEEFFECT , LPVOID);
     823
     824/* DInput 8 structures and types */
     825#if DIRECTINPUT_VERSION >= 0x0800
     826typedef struct _DIACTIONA {
     827        UINT_PTR        uAppData;
     828        DWORD           dwSemantics;
     829        DWORD           dwFlags;
     830        union {
     831                LPCSTR  lptszActionName;
     832                UINT    uResIdString;
     833        } DUMMYUNIONNAME;
     834        GUID            guidInstance;
     835        DWORD           dwObjID;
     836        DWORD           dwHow;
     837} DIACTIONA, *LPDIACTIONA;
     838typedef const DIACTIONA *LPCDIACTIONA;
     839
     840typedef struct _DIACTIONW {
     841        UINT_PTR        uAppData;
     842        DWORD           dwSemantics;
     843        DWORD           dwFlags;
     844        union {
     845                LPCWSTR lptszActionName;
     846                UINT    uResIdString;
     847        } DUMMYUNIONNAME;
     848        GUID            guidInstance;
     849        DWORD           dwObjID;
     850        DWORD           dwHow;
     851} DIACTIONW, *LPDIACTIONW;
     852typedef const DIACTIONW *LPCDIACTIONW;
     853
     854DECL_WINELIB_TYPE_AW(DIACTION)
     855DECL_WINELIB_TYPE_AW(LPDIACTION)
     856DECL_WINELIB_TYPE_AW(LPCDIACTION)
     857
     858#define DIA_FORCEFEEDBACK       0x00000001
     859#define DIA_APPMAPPED           0x00000002
     860#define DIA_APPNOMAP            0x00000004
     861#define DIA_NORANGE             0x00000008
     862#define DIA_APPFIXED            0x00000010
     863
     864#define DIAH_UNMAPPED           0x00000000
     865#define DIAH_USERCONFIG         0x00000001
     866#define DIAH_APPREQUESTED       0x00000002
     867#define DIAH_HWAPP              0x00000004
     868#define DIAH_HWDEFAULT          0x00000008
     869#define DIAH_DEFAULT            0x00000020
     870#define DIAH_ERROR              0x80000000
     871
     872typedef struct _DIACTIONFORMATA {
     873        DWORD           dwSize;
     874        DWORD           dwActionSize;
     875        DWORD           dwDataSize;
     876        DWORD           dwNumActions;
     877        LPDIACTIONA     rgoAction;
     878        GUID            guidActionMap;
     879        DWORD           dwGenre;
     880        DWORD           dwBufferSize;
     881        LONG            lAxisMin;
     882        LONG            lAxisMax;
     883        HINSTANCE       hInstString;
     884        FILETIME        ftTimeStamp;
     885        DWORD           dwCRC;
     886        CHAR            tszActionMap[MAX_PATH];
     887} DIACTIONFORMATA, *LPDIACTIONFORMATA;
     888typedef const DIACTIONFORMATA *LPCDIACTIONFORMATA;
     889
     890typedef struct _DIACTIONFORMATW {
     891        DWORD           dwSize;
     892        DWORD           dwActionSize;
     893        DWORD           dwDataSize;
     894        DWORD           dwNumActions;
     895        LPDIACTIONW     rgoAction;
     896        GUID            guidActionMap;
     897        DWORD           dwGenre;
     898        DWORD           dwBufferSize;
     899        LONG            lAxisMin;
     900        LONG            lAxisMax;
     901        HINSTANCE       hInstString;
     902        FILETIME        ftTimeStamp;
     903        DWORD           dwCRC;
     904        WCHAR           tszActionMap[MAX_PATH];
     905} DIACTIONFORMATW, *LPDIACTIONFORMATW;
     906typedef const DIACTIONFORMATW *LPCDIACTIONFORMATW;
     907
     908DECL_WINELIB_TYPE_AW(DIACTIONFORMAT)
     909DECL_WINELIB_TYPE_AW(LPDIACTIONFORMAT)
     910DECL_WINELIB_TYPE_AW(LPCDIACTIONFORMAT)
     911
     912#define DIAFTS_NEWDEVICELOW     0xFFFFFFFF
     913#define DIAFTS_NEWDEVICEHIGH    0xFFFFFFFF
     914#define DIAFTS_UNUSEDDEVICELOW  0x00000000
     915#define DIAFTS_UNUSEDDEVICEHIGH 0x00000000
     916
     917#define DIDBAM_DEFAULT          0x00000000
     918#define DIDBAM_PRESERVE         0x00000001
     919#define DIDBAM_INITIALIZE       0x00000002
     920#define DIDBAM_HWDEFAULTS       0x00000004
     921
     922#define DIDSAM_DEFAULT          0x00000000
     923#define DIDSAM_NOUSER           0x00000001
     924#define DIDSAM_FORCESAVE        0x00000002
     925
     926#define DICD_DEFAULT            0x00000000
     927#define DICD_EDIT               0x00000001
     928
     929#ifndef D3DCOLOR_DEFINED
     930typedef DWORD D3DCOLOR;
     931#define D3DCOLOR_DEFINED
     932#endif
     933
     934typedef struct _DICOLORSET {
     935        DWORD           dwSize;
     936        D3DCOLOR        cTextFore;
     937        D3DCOLOR        cTextHighlight;
     938        D3DCOLOR        cCalloutLine;
     939        D3DCOLOR        cCalloutHighlight;
     940        D3DCOLOR        cBorder;
     941        D3DCOLOR        cControlFill;
     942        D3DCOLOR        cHighlightFill;
     943        D3DCOLOR        cAreaFill;
     944} DICOLORSET, *LPDICOLORSET;
     945typedef const DICOLORSET *LPCDICOLORSET;
     946
     947typedef struct _DICONFIGUREDEVICESPARAMSA {
     948        DWORD                   dwSize;
     949        DWORD                   dwcUsers;
     950        LPSTR                   lptszUserNames;
     951        DWORD                   dwcFormats;
     952        LPDIACTIONFORMATA       lprgFormats;
     953        HWND                    hwnd;
     954        DICOLORSET              dics;
     955        LPUNKNOWN               lpUnkDDSTarget;
     956} DICONFIGUREDEVICESPARAMSA, *LPDICONFIGUREDEVICESPARAMSA;
     957typedef const DICONFIGUREDEVICESPARAMSA *LPCDICONFIGUREDEVICESPARAMSA;
     958
     959typedef struct _DICONFIGUREDEVICESPARAMSW {
     960        DWORD                   dwSize;
     961        DWORD                   dwcUsers;
     962        LPWSTR                  lptszUserNames;
     963        DWORD                   dwcFormats;
     964        LPDIACTIONFORMATW       lprgFormats;
     965        HWND                    hwnd;
     966        DICOLORSET              dics;
     967        LPUNKNOWN               lpUnkDDSTarget;
     968} DICONFIGUREDEVICESPARAMSW, *LPDICONFIGUREDEVICESPARAMSW;
     969typedef const DICONFIGUREDEVICESPARAMSW *LPCDICONFIGUREDEVICESPARAMSW;
     970
     971DECL_WINELIB_TYPE_AW(DICONFIGUREDEVICESPARAMS)
     972DECL_WINELIB_TYPE_AW(LPDICONFIGUREDEVICESPARAMS)
     973DECL_WINELIB_TYPE_AW(LPCDICONFIGUREDEVICESPARAMS)
     974
     975#define DIDIFT_CONFIGURATION    0x00000001
     976#define DIDIFT_OVERLAY          0x00000002
     977
     978#define DIDAL_CENTERED          0x00000000
     979#define DIDAL_LEFTALIGNED       0x00000001
     980#define DIDAL_RIGHTALIGNED      0x00000002
     981#define DIDAL_MIDDLE            0x00000000
     982#define DIDAL_TOPALIGNED        0x00000004
     983#define DIDAL_BOTTOMALIGNED     0x00000008
     984
     985typedef struct _DIDEVICEIMAGEINFOA {
     986        CHAR    tszImagePath[MAX_PATH];
     987        DWORD   dwFlags;
     988        DWORD   dwViewID;
     989        RECT    rcOverlay;
     990        DWORD   dwObjID;
     991        DWORD   dwcValidPts;
     992        POINT   rgptCalloutLine[5];
     993        RECT    rcCalloutRect;
     994        DWORD   dwTextAlign;
     995} DIDEVICEIMAGEINFOA, *LPDIDEVICEIMAGEINFOA;
     996typedef const DIDEVICEIMAGEINFOA *LPCDIDEVICEIMAGEINFOA;
     997
     998typedef struct _DIDEVICEIMAGEINFOW {
     999        WCHAR   tszImagePath[MAX_PATH];
     1000        DWORD   dwFlags;
     1001        DWORD   dwViewID;
     1002        RECT    rcOverlay;
     1003        DWORD   dwObjID;
     1004        DWORD   dwcValidPts;
     1005        POINT   rgptCalloutLine[5];
     1006        RECT    rcCalloutRect;
     1007        DWORD   dwTextAlign;
     1008} DIDEVICEIMAGEINFOW, *LPDIDEVICEIMAGEINFOW;
     1009typedef const DIDEVICEIMAGEINFOW *LPCDIDEVICEIMAGEINFOW;
     1010
     1011DECL_WINELIB_TYPE_AW(DIDEVICEIMAGEINFO)
     1012DECL_WINELIB_TYPE_AW(LPDIDEVICEIMAGEINFO)
     1013DECL_WINELIB_TYPE_AW(LPCDIDEVICEIMAGEINFO)
     1014
     1015typedef struct _DIDEVICEIMAGEINFOHEADERA {
     1016        DWORD   dwSize;
     1017        DWORD   dwSizeImageInfo;
     1018        DWORD   dwcViews;
     1019        DWORD   dwcButtons;
     1020        DWORD   dwcAxes;
     1021        DWORD   dwcPOVs;
     1022        DWORD   dwBufferSize;
     1023        DWORD   dwBufferUsed;
     1024        LPDIDEVICEIMAGEINFOA    lprgImageInfoArray;
     1025} DIDEVICEIMAGEINFOHEADERA, *LPDIDEVICEIMAGEINFOHEADERA;
     1026typedef const DIDEVICEIMAGEINFOHEADERA *LPCDIDEVICEIMAGEINFOHEADERA;
     1027
     1028typedef struct _DIDEVICEIMAGEINFOHEADERW {
     1029        DWORD   dwSize;
     1030        DWORD   dwSizeImageInfo;
     1031        DWORD   dwcViews;
     1032        DWORD   dwcButtons;
     1033        DWORD   dwcAxes;
     1034        DWORD   dwcPOVs;
     1035        DWORD   dwBufferSize;
     1036        DWORD   dwBufferUsed;
     1037        LPDIDEVICEIMAGEINFOW    lprgImageInfoArray;
     1038} DIDEVICEIMAGEINFOHEADERW, *LPDIDEVICEIMAGEINFOHEADERW;
     1039typedef const DIDEVICEIMAGEINFOHEADERW *LPCDIDEVICEIMAGEINFOHEADERW;
     1040
     1041DECL_WINELIB_TYPE_AW(DIDEVICEIMAGEINFOHEADER)
     1042DECL_WINELIB_TYPE_AW(LPDIDEVICEIMAGEINFOHEADER)
     1043DECL_WINELIB_TYPE_AW(LPCDIDEVICEIMAGEINFOHEADER)
     1044
     1045#endif /* DI8 */
    7751046
    7761047
     
    8741145    ICOM_METHOD1(HRESULT,Escape, LPDIEFFESCAPE,pesc) \
    8751146    ICOM_METHOD (HRESULT,Poll) \
    876     ICOM_METHOD4(HRESULT,SendDeviceData, DWORD,cbObjectData, LPDIDEVICEOBJECTDATA,rgdod, LPDWORD,pdwInOut, DWORD,fl)
     1147    ICOM_METHOD4(HRESULT,SendDeviceData, DWORD,cbObjectData, LPCDIDEVICEOBJECTDATA,rgdod, LPDWORD,pdwInOut, DWORD,fl)
    8771148#define IDirectInputDevice2A_IMETHODS \
    8781149    IDirectInputDeviceA_IMETHODS \
     
    9121183#define IDirectInputDevice2_SendDeviceData(p,a,b,c,d)         ICOM_CALL4(SendDeviceData,p,a,b,c,d)
    9131184
     1185#if DIRECTINPUT_VERSION >= 0x0700
    9141186/*****************************************************************************
    9151187 * IDirectInputDevice7A interface
     
    9201192    ICOM_METHOD4(HRESULT,WriteEffectToFile,LPCSTR,lpszFileName,DWORD,dwEntries,LPDIFILEEFFECT,rgDiFileEft,DWORD,dwFlags)
    9211193#define IDirectInputDevice7A_IMETHODS \
    922     IDirectInputDeviceA_IMETHODS \
    923     IDirectInputDevice2A_METHODS \
     1194    IDirectInputDevice2A_IMETHODS \
    9241195    IDirectInputDevice7A_METHODS
    9251196ICOM_DEFINE(IDirectInputDevice7A,IDirectInputDevice2A)
     
    9591230#define IDirectInputDevice7_EnumEffectsInFile(p,a,b,c,d) ICOM_CALL4(EnumEffectsInFile,p,a,b,c,d)
    9601231#define IDirectInputDevice7_WriteEffectToFile(p,a,b,c,d) ICOM_CALL4(WriteEffectToFile,p,a,b,c,d)
     1232#endif /* DI7 */
     1233
     1234#if DIRECTINPUT_VERSION >= 0x0800
     1235/*****************************************************************************
     1236 * IDirectInputDevice8A interface
     1237 */
     1238#define ICOM_INTERFACE IDirectInputDevice8A
     1239#define IDirectInputDevice8A_METHODS \
     1240    ICOM_METHOD3(HRESULT,BuildActionMap, LPDIACTIONFORMATA,lpdiaf, LPCSTR,lpszUserName, DWORD,dwFlags) \
     1241    ICOM_METHOD3(HRESULT,SetActionMap, LPDIACTIONFORMATA,lpdiaf, LPCSTR,lpszUserName, DWORD,dwFlags) \
     1242    ICOM_METHOD1(HRESULT,GetImageInfo, LPDIDEVICEIMAGEINFOHEADERA,lpdiDevImageInfoHeader)
     1243#define IDirectInputDevice8A_IMETHODS \
     1244    IDirectInputDevice7A_IMETHODS \
     1245    IDirectInputDevice8A_METHODS
     1246ICOM_DEFINE(IDirectInputDevice8A,IDirectInputDevice7A)
     1247#undef ICOM_INTERFACE
     1248
     1249/*** IUnknown methods ***/
     1250#define IDirectInputDevice8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
     1251#define IDirectInputDevice8_AddRef(p)             ICOM_CALL (AddRef,p)
     1252#define IDirectInputDevice8_Release(p)            ICOM_CALL (Release,p)
     1253/*** IDirectInputDevice methods ***/
     1254#define IDirectInputDevice8_GetCapabilities(p,a)       ICOM_CALL1(GetCapabilities,p,a)
     1255#define IDirectInputDevice8_EnumObjects(p,a,b,c)       ICOM_CALL3(EnumObjects,p,a,b,c)
     1256#define IDirectInputDevice8_GetProperty(p,a,b)         ICOM_CALL2(GetProperty,p,a,b)
     1257#define IDirectInputDevice8_SetProperty(p,a,b)         ICOM_CALL2(SetProperty,p,a,b)
     1258#define IDirectInputDevice8_Acquire(p)                 ICOM_CALL (Acquire,p)
     1259#define IDirectInputDevice8_Unacquire(p)               ICOM_CALL (Unacquire,p)
     1260#define IDirectInputDevice8_GetDeviceState(p,a,b)      ICOM_CALL2(GetDeviceState,p,a,b)
     1261#define IDirectInputDevice8_GetDeviceData(p,a,b,c,d)   ICOM_CALL4(GetDeviceData,p,a,b,c,d)
     1262#define IDirectInputDevice8_SetDataFormat(p,a)         ICOM_CALL1(SetDataFormat,p,a)
     1263#define IDirectInputDevice8_SetEventNotification(p,a)  ICOM_CALL1(SetEventNotification,p,a)
     1264#define IDirectInputDevice8_SetCooperativeLevel(p,a,b) ICOM_CALL2(SetCooperativeLevel,p,a,b)
     1265#define IDirectInputDevice8_GetObjectInfo(p,a,b,c)     ICOM_CALL3(GetObjectInfo,p,a,b,c)
     1266#define IDirectInputDevice8_GetDeviceInfo(p,a)         ICOM_CALL1(GetDeviceInfo,p,a)
     1267#define IDirectInputDevice8_RunControlPanel(p,a,b)     ICOM_CALL2(RunControlPanel,p,a,b)
     1268#define IDirectInputDevice8_Initialize(p,a,b,c)        ICOM_CALL3(Initialize,p,a,b,c)
     1269/*** IDirectInputDevice2 methods ***/
     1270#define IDirectInputDevice8_CreateEffect(p,a,b,c,d)           ICOM_CALL4(CreateEffect,p,a,b,c,d)
     1271#define IDirectInputDevice8_EnumEffects(p,a,b,c)              ICOM_CALL3(EnumEffects,p,a,b,c)
     1272#define IDirectInputDevice8_GetEffectInfo(p,a,b)              ICOM_CALL2(GetEffectInfo,p,a,b)
     1273#define IDirectInputDevice8_GetForceFeedbackState(p,a)        ICOM_CALL1(GetForceFeedbackState,p,a)
     1274#define IDirectInputDevice8_SendForceFeedbackCommand(p,a)     ICOM_CALL1(SendForceFeedbackCommand,p,a)
     1275#define IDirectInputDevice8_EnumCreatedEffectObjects(p,a,b,c) ICOM_CALL3(EnumCreatedEffectObjects,p,a,b,c)
     1276#define IDirectInputDevice8_Escape(p,a)                       ICOM_CALL1(Escape,p,a)
     1277#define IDirectInputDevice8_Poll(p)                           ICOM_CALL (Poll,p)
     1278#define IDirectInputDevice8_SendDeviceData(p,a,b,c,d)         ICOM_CALL4(SendDeviceData,p,a,b,c,d)
     1279/*** IDirectInputDevice7 methods ***/
     1280#define IDirectInputDevice8_EnumEffectsInFile(p,a,b,c,d) ICOM_CALL4(EnumEffectsInFile,p,a,b,c,d)
     1281#define IDirectInputDevice8_WriteEffectToFile(p,a,b,c,d) ICOM_CALL4(WriteEffectToFile,p,a,b,c,d)
     1282/*** IDirectInputDevice8 methods ***/
     1283#define IDirectInputDevice8_BuildActionMap(p,a,b,c) ICOM_CALL3(BuildActionMap,p,a,b,c)
     1284#define IDirectInputDevice8_SetActionMap(p,a,b,c)   ICOM_CALL3(SetActionMap,p,a,b,c)
     1285#define IDirectInputDevice8_GetImageInfo(p,a)       ICOM_CALL1(GetImageInfo,p,a)
     1286#endif /* DI8 */
    9611287
    9621288/* "Standard" Mouse report... */
     
    10481374#define IDirectInput2A_FindDevice(p,a,b,c)    ICOM_CALL3(FindDevice,p,a,b,c)
    10491375
     1376#if DIRECTINPUT_VERSION >= 0x0700
    10501377/*****************************************************************************
    10511378 * IDirectInput7A interface
     
    10741401        /*** IDirectInput7A methods ***/
    10751402#define IDirectInput7A_CreateDeviceEx(p,a,b,c,d) ICOM_CALL4(CreateDeviceEx,p,a,b,c,d)
    1076 
    1077 /* Export functions */
     1403#endif /* DI7 */
     1404
     1405#if DIRECTINPUT_VERSION >= 0x0800
     1406/*****************************************************************************
     1407 * IDirectInput8A interface
     1408 */
     1409#define ICOM_INTERFACE IDirectInput8A
     1410#define IDirectInput8A_METHODS \
     1411    ICOM_METHOD3(HRESULT,CreateDevice,    REFGUID,rguid, LPDIRECTINPUTDEVICE8A*,lplpDirectInputDevice, LPUNKNOWN,pUnkOuter) \
     1412    ICOM_METHOD4(HRESULT,EnumDevices,     DWORD,dwDevType, LPDIENUMDEVICESCALLBACKA,lpCallback, LPVOID,pvRef, DWORD,dwFlags) \
     1413    ICOM_METHOD1(HRESULT,GetDeviceStatus, REFGUID,rguidInstance) \
     1414    ICOM_METHOD2(HRESULT,RunControlPanel, HWND,hwndOwner, DWORD,dwFlags) \
     1415    ICOM_METHOD2(HRESULT,Initialize,      HINSTANCE,hinst, DWORD,dwVersion) \
     1416    ICOM_METHOD3(HRESULT,FindDevice,      REFGUID,rguid, LPCSTR,pszName, LPGUID,pguidInstance) \
     1417    ICOM_METHOD5(HRESULT,EnumDevicesBySemantics, LPCSTR,ptszUserName, LPDIACTIONFORMATA,lpdiActionFormat, LPDIENUMDEVICESBYSEMANTICSCBA,lpCallback, LPVOID,pvRef, DWORD,dwFlags) \
     1418    ICOM_METHOD4(HRESULT,ConfigureDevices,LPDICONFIGUREDEVICESCALLBACK,lpdiCallback, LPDICONFIGUREDEVICESPARAMSA,lpdiCDParams, DWORD,dwFlags, LPVOID,pvRefData)
     1419#define IDirectInput8A_IMETHODS \
     1420    IUnknown_IMETHODS \
     1421    IDirectInput8A_METHODS
     1422ICOM_DEFINE(IDirectInput8A,IUnknown)
     1423#undef ICOM_INTERFACE
     1424
     1425/*** IUnknown methods ***/
     1426#define IDirectInput8A_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
     1427#define IDirectInput8A_AddRef(p)             ICOM_CALL (AddRef,p)
     1428#define IDirectInput8A_Release(p)            ICOM_CALL (Release,p)
     1429      /*** IDirectInput8A methods ***/
     1430#define IDirectInput8A_CreateDevice(p,a,b,c)       ICOM_CALL3(CreateDevice,p,a,b,c)
     1431#define IDirectInput8A_EnumDevices(p,a,b,c,d)      ICOM_CALL4(EnumDevices,p,a,b,c,d)
     1432#define IDirectInput8A_GetDeviceStatus(p,a)        ICOM_CALL1(GetDeviceStatus,p,a)
     1433#define IDirectInput8A_RunControlPanel(p,a,b)      ICOM_CALL2(RunControlPanel,p,a,b)
     1434#define IDirectInput8A_Initialize(p,a,b)           ICOM_CALL2(Initialize,p,a,b)
     1435#define IDirectInput8A_FindDevice(p,a,b,c)         ICOM_CALL3(FindDevice,p,a,b,c)
     1436#define IDirectInput8A_EnumDevicesBySemantics(p,a,b,c,d,e) ICOM_CALL5(EnumDevicesBySemantics,p,a,b,c,d,e)
     1437#define IDirectInput8A_ConfigureDevices(p,a,b,c,d) ICOM_CALL4(ConfigureDevices,p,a,b,c,d)
     1438#endif /* DI8 */
     1439
     1440/* Export functions */
    10781441
    10791442#ifdef __cplusplus
     
    10811444#endif
    10821445
     1446#if DIRECTINPUT_VERSION >= 0x0800
     1447HRESULT WINAPI DirectInput8Create(HINSTANCE,DWORD,REFIID,LPVOID *,LPUNKNOWN);
     1448#endif
     1449
    10831450HRESULT WINAPI DirectInputCreateA(HINSTANCE,DWORD,LPDIRECTINPUTA *,LPUNKNOWN);
    10841451HRESULT WINAPI DirectInputCreateW(HINSTANCE,DWORD,LPDIRECTINPUTA *,LPUNKNOWN);
Note: See TracChangeset for help on using the changeset viewer.