dinput header fixes
Robert Reif
reif at earthlink.net
Thu Sep 16 20:42:44 CDT 2004
Add some more version checks.
Add some missing structures.
-------------- next part --------------
Index: include/dinput.h
===================================================================
RCS file: /home/wine/wine/include/dinput.h,v
retrieving revision 1.44
diff -u -r1.44 dinput.h
--- include/dinput.h 7 Sep 2004 19:32:56 -0000 1.44
+++ include/dinput.h 17 Sep 2004 01:31:51 -0000
@@ -314,6 +314,7 @@
#define GET_DIDEVICE_TYPE(dwDevType) LOBYTE(dwDevType)
#define GET_DIDEVICE_SUBTYPE(dwDevType) HIBYTE(dwDevType)
+#if(DIRECTINPUT_VERSION >= 0x0500)
typedef struct DIDEVICEOBJECTINSTANCE_DX3A {
DWORD dwSize;
GUID guidType;
@@ -336,6 +337,7 @@
DECL_WINELIB_TYPE_AW(DIDEVICEOBJECTINSTANCE_DX3)
DECL_WINELIB_TYPE_AW(LPDIDEVICEOBJECTINSTANCE_DX3)
DECL_WINELIB_TYPE_AW(LPCDIDEVICEOBJECTINSTANCE_DX3)
+#endif /* DIRECTINPUT_VERSION >= 0x0500 */
typedef struct DIDEVICEOBJECTINSTANCEA {
DWORD dwSize;
@@ -383,6 +385,7 @@
DECL_WINELIB_TYPE_AW(LPDIDEVICEOBJECTINSTANCE)
DECL_WINELIB_TYPE_AW(LPCDIDEVICEOBJECTINSTANCE)
+#if(DIRECTINPUT_VERSION >= 0x0500)
typedef struct DIDEVICEINSTANCE_DX3A {
DWORD dwSize;
GUID guidInstance;
@@ -405,6 +408,7 @@
DECL_WINELIB_TYPE_AW(DIDEVICEINSTANCE_DX3)
DECL_WINELIB_TYPE_AW(LPDIDEVICEINSTANCE_DX3)
DECL_WINELIB_TYPE_AW(LPCDIDEVICEINSTANCE_DX3)
+#endif /* DIRECTINPUT_VERSION >= 0x0500 */
typedef struct DIDEVICEINSTANCEA {
DWORD dwSize;
@@ -640,7 +644,9 @@
DWORD dwData;
DWORD dwTimeStamp;
DWORD dwSequence;
+#if(DIRECTINPUT_VERSION >= 0x0800)
UINT_PTR uAppData;
+#endif /* DIRECTINPUT_VERSION >= 0x0800 */
} DIDEVICEOBJECTDATA, *LPDIDEVICEOBJECTDATA;
typedef const DIDEVICEOBJECTDATA *LPCDIDEVICEOBJECTDATA;
@@ -693,6 +699,14 @@
} DIPROPDWORD, *LPDIPROPDWORD;
typedef const DIPROPDWORD *LPCDIPROPDWORD;
+#if(DIRECTINPUT_VERSION >= 0x0800)
+typedef struct DIPROPPOINTER {
+ DIPROPHEADER diph;
+ UINT_PTR uData;
+} DIPROPPOINTER, *LPDIPROPPOINTER;
+typedef const DIPROPPOINTER *LPCDIPROPPOINTER;
+#endif /* DIRECTINPUT_VERSION >= 0x0800 */
+
typedef struct DIPROPRANGE {
DIPROPHEADER diph;
LONG lMin;
@@ -703,6 +717,7 @@
#define DIPROPRANGE_NOMIN ((LONG)0x80000000)
#define DIPROPRANGE_NOMAX ((LONG)0x7FFFFFFF)
+#if(DIRECTINPUT_VERSION >= 0x050a)
typedef struct DIPROPCAL {
DIPROPHEADER diph;
LONG lMin;
@@ -711,6 +726,13 @@
} DIPROPCAL, *LPDIPROPCAL;
typedef const DIPROPCAL *LPCDIPROPCAL;
+typedef struct DIPROPCALPOV {
+ DIPROPHEADER diph;
+ LONG lMin[5];
+ LONG lMax[5];
+} DIPROPCALPOV, *LPDIPROPCALPOV;
+typedef const DIPROPCALPOV *LPCDIPROPCALPOV;
+
typedef struct DIPROPGUIDANDPATH {
DIPROPHEADER diph;
GUID guidClass;
@@ -718,6 +740,30 @@
} DIPROPGUIDANDPATH, *LPDIPROPGUIDANDPATH;
typedef const DIPROPGUIDANDPATH *LPCDIPROPGUIDANDPATH;
+typedef struct DIPROPSTRING {
+ DIPROPHEADER diph;
+ WCHAR wsz[MAX_PATH];
+} DIPROPSTRING, *LPDIPROPSTRING;
+typedef const DIPROPSTRING *LPCDIPROPSTRING;
+#endif /* DIRECTINPUT_VERSION >= 0x050a */
+
+#if(DIRECTINPUT_VERSION >= 0x0800)
+#define MAXCPOINTSNUM 8
+
+typedef struct _CPOINT
+{
+ LONG lP;
+ DWORD dwLog;
+} CPOINT, *PCPOINT;
+
+typedef struct DIPROPCPOINTS {
+ DIPROPHEADER diph;
+ DWORD dwCPointsNum;
+ CPOINT cp[MAXCPOINTSNUM];
+} DIPROPCPOINTS, *LPDIPROPCPOINTS;
+typedef const DIPROPCPOINTS *LPCDIPROPCPOINTS;
+#endif /* DIRECTINPUT_VERSION >= 0x0800 */
+
/* special property GUIDs */
#ifdef __cplusplus
#define MAKEDIPROP(prop) (*(const GUID *)(prop))
@@ -749,6 +795,7 @@
#define DIPROP_CALIBRATION MAKEDIPROP(11)
#define DIPROP_GUIDANDPATH MAKEDIPROP(12)
+#if(DIRECTINPUT_VERSION >= 0x0500)
typedef struct DIDEVCAPS_DX3 {
DWORD dwSize;
DWORD dwFlags;
@@ -757,6 +804,7 @@
DWORD dwButtons;
DWORD dwPOVs;
} DIDEVCAPS_DX3, *LPDIDEVCAPS_DX3;
+#endif /* DIRECTINPUT_VERSION >= 0x0500 */
typedef struct DIDEVCAPS {
DWORD dwSize;
@@ -895,7 +943,9 @@
LPDIENVELOPE lpEnvelope;
DWORD cbTypeSpecificParams;
LPVOID lpvTypeSpecificParams;
+#if(DIRECTINPUT_VERSION >= 0x0600)
DWORD dwStartDelay;
+#endif /* DIRECTINPUT_VERSION >= 0x0600 */
} DIEFFECT, *LPDIEFFECT;
typedef const DIEFFECT *LPCDIEFFECT;
typedef DIEFFECT DIEFFECT_DX6;
@@ -1027,6 +1077,7 @@
#define DIJOFS_BUTTON31 DIJOFS_BUTTON(31)
/* DInput 7 structures, types */
+#if(DIRECTINPUT_VERSION >= 0x0700)
typedef struct DIFILEEFFECT {
DWORD dwSize;
GUID GuidEffect;
@@ -1036,6 +1087,7 @@
typedef const DIFILEEFFECT *LPCDIFILEEFFECT;
typedef BOOL (CALLBACK *LPDIENUMEFFECTSINFILECALLBACK)(LPCDIFILEEFFECT , LPVOID);
+#endif
/* DInput 8 structures and types */
#if DIRECTINPUT_VERSION >= 0x0800
@@ -1569,20 +1621,22 @@
#endif /* DI8 */
/* "Standard" Mouse report... */
-typedef struct DIMOUSESTATE {
+typedef struct _DIMOUSESTATE {
LONG lX;
LONG lY;
LONG lZ;
BYTE rgbButtons[4];
-} DIMOUSESTATE;
+} DIMOUSESTATE, *LPDIMOUSESTATE;
/* "Standard" Mouse report for DInput 7... */
-typedef struct DIMOUSESTATE2 {
+#if DIRECTINPUT_VERSION >= 0x0700
+typedef struct _DIMOUSESTATE2 {
LONG lX;
LONG lY;
LONG lZ;
BYTE rgbButtons[8];
-} DIMOUSESTATE2;
+} DIMOUSESTATE2, *LPDIMOUSESTATE2;
+#endif /* DIRECTINPUT_VERSION >= 0x0700 */
#define DIMOFS_X FIELD_OFFSET(DIMOUSESTATE, lX)
#define DIMOFS_Y FIELD_OFFSET(DIMOUSESTATE, lY)
@@ -1600,10 +1654,14 @@
extern "C" {
#endif
extern const DIDATAFORMAT c_dfDIMouse;
+#if(DIRECTINPUT_VERSION >= 0x0700)
extern const DIDATAFORMAT c_dfDIMouse2; /* DX 7 */
+#endif /* DIRECTINPUT_VERSION >= 0x0700 */
extern const DIDATAFORMAT c_dfDIKeyboard;
+#if(DIRECTINPUT_VERSION >= 0x0500)
extern const DIDATAFORMAT c_dfDIJoystick;
extern const DIDATAFORMAT c_dfDIJoystick2;
+#endif /* DIRECTINPUT_VERSION >= 0x0500 */
#ifdef __cplusplus
};
#endif
More information about the wine-patches
mailing list