[DINPUT04] some fixes and cleanup from previous patch

Raphaël Junqueira fenix at club-internet.fr
Wed Jun 11 18:09:34 CDT 2003


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

 This patch need my 'Re: [DINPUT] Some more dinput stuf' patch (the file 
dinput-costa.diff.bis, considered as DINPUT03).

Changelog:
 - fix a stupid bug in callback handling catched by Lionel.
 - add some forgotten IID on class factory (better if we want to active the 
code)
 - make lionel happy: many cleanup on COM Macros (don't need A and W variants 
as they are the same)

Regards,
Raphael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE+57aup7NA3AmQTU4RAqRkAKCIvGQRWYvq+LtlisHzBmYu83qwKQCfceK+
Uk3Sym1/61LBgBO7zrUvLAo=
=8H8K
-----END PGP SIGNATURE-----
-------------- next part --------------
--- include/dinput.3	2003-06-12 00:53:31.000000000 +0200
+++ include/dinput.h	2003-06-12 00:42:48.000000000 +0200
@@ -1491,19 +1491,6 @@
 ICOM_DEFINE(IDirectInputA,IUnknown)
 #undef INTERFACE
 
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IDirectInputA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInputA_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectInputA_Release(p)            (p)->lpVtbl->Release(p)
-	/*** IDirectInputA methods ***/
-#define IDirectInputA_CreateDevice(p,a,b,c)  (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInputA_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInputA_GetDeviceStatus(p,a)   (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInputA_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInputA_Initialize(p,a,b)      (p)->lpVtbl->Initialize(p,a,b)
-#endif
-
 /*****************************************************************************
  * IDirectInputW interface
  */
@@ -1520,15 +1507,15 @@
 
 #ifdef COBJMACROS
 /*** IUnknown methods ***/
-#define IDirectInputW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInputW_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectInputW_Release(p)            (p)->lpVtbl->Release(p)
-	/*** IDirectInputW methods ***/
-#define IDirectInputW_CreateDevice(p,a,b,c)  (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInputW_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInputW_GetDeviceStatus(p,a)   (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInputW_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInputW_Initialize(p,a,b)      (p)->lpVtbl->Initialize(p,a,b)
+#define IDirectInput_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectInput_AddRef(p)             (p)->lpVtbl->AddRef(p)
+#define IDirectInput_Release(p)            (p)->lpVtbl->Release(p)
+	/*** IDirectInput methods ***/
+#define IDirectInput_CreateDevice(p,a,b,c)  (p)->lpVtbl->CreateDevice(p,a,b,c)
+#define IDirectInput_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
+#define IDirectInput_GetDeviceStatus(p,a)   (p)->lpVtbl->GetDeviceStatus(p,a)
+#define IDirectInput_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
+#define IDirectInput_Initialize(p,a,b)      (p)->lpVtbl->Initialize(p,a,b)
 #endif
 
 /*****************************************************************************
@@ -1541,21 +1528,6 @@
 ICOM_DEFINE(IDirectInput2A,IDirectInputA)
 #undef INTERFACE
 
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IDirectInput2A_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInput2A_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectInput2A_Release(p)            (p)->lpVtbl->Release(p)
-	/*** IDirectInputA methods ***/
-#define IDirectInput2A_CreateDevice(p,a,b,c)  (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInput2A_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInput2A_GetDeviceStatus(p,a)   (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInput2A_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInput2A_Initialize(p,a,b)      (p)->lpVtbl->Initialize(p,a,b)
-	/*** IDirectInput2A methods ***/
-#define IDirectInput2A_FindDevice(p,a,b,c)    (p)->lpVtbl->FindDevice(p,a,b,c)
-#endif
-
 /*****************************************************************************
  * IDirectInput2W interface
  */
@@ -1568,17 +1540,17 @@
 
 #ifdef COBJMACROS
 /*** IUnknown methods ***/
-#define IDirectInput2W_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInput2W_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectInput2W_Release(p)            (p)->lpVtbl->Release(p)
-	/*** IDirectInputW methods ***/
-#define IDirectInput2W_CreateDevice(p,a,b,c)  (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInput2W_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInput2W_GetDeviceStatus(p,a)   (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInput2W_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInput2W_Initialize(p,a,b)      (p)->lpVtbl->Initialize(p,a,b)
-	/*** IDirectInput2W methods ***/
-#define IDirectInput2W_FindDevice(p,a,b,c)    (p)->lpVtbl->FindDevice(p,a,b,c)
+#define IDirectInput2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectInput2_AddRef(p)             (p)->lpVtbl->AddRef(p)
+#define IDirectInput2_Release(p)            (p)->lpVtbl->Release(p)
+	/*** IDirectInput methods ***/
+#define IDirectInput2_CreateDevice(p,a,b,c)  (p)->lpVtbl->CreateDevice(p,a,b,c)
+#define IDirectInput2_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
+#define IDirectInput2_GetDeviceStatus(p,a)   (p)->lpVtbl->GetDeviceStatus(p,a)
+#define IDirectInput2_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
+#define IDirectInput2_Initialize(p,a,b)      (p)->lpVtbl->Initialize(p,a,b)
+	/*** IDirectInput2 methods ***/
+#define IDirectInput2_FindDevice(p,a,b,c)    (p)->lpVtbl->FindDevice(p,a,b,c)
 #endif
 
 #if DIRECTINPUT_VERSION >= 0x0700
@@ -1592,23 +1564,6 @@
 ICOM_DEFINE(IDirectInput7A,IDirectInput2A)
 #undef INTERFACE
 
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IDirectInput7A_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInput7A_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectInput7A_Release(p)            (p)->lpVtbl->Release(p)
-	/*** IDirectInputA methods ***/
-#define IDirectInput7A_CreateDevice(p,a,b,c)  (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInput7A_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInput7A_GetDeviceStatus(p,a)   (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInput7A_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInput7A_Initialize(p,a,b)      (p)->lpVtbl->Initialize(p,a,b)
-	/*** IDirectInput2A methods ***/
-#define IDirectInput7A_FindDevice(p,a,b,c)    (p)->lpVtbl->FindDevice(p,a,b,c)
-	/*** IDirectInput7A methods ***/
-#define IDirectInput7A_CreateDeviceEx(p,a,b,c,d) (p)->lpVtbl->CreateDeviceEx(p,a,b,c,d)
-#endif
-
 /*****************************************************************************
  * IDirectInput7W interface
  */
@@ -1621,19 +1576,19 @@
 
 #ifdef COBJMACROS
 /*** IUnknown methods ***/
-#define IDirectInput7W_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInput7W_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectInput7W_Release(p)            (p)->lpVtbl->Release(p)
-	/*** IDirectInputW methods ***/
-#define IDirectInput7W_CreateDevice(p,a,b,c)  (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInput7W_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInput7W_GetDeviceStatus(p,a)   (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInput7W_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInput7W_Initialize(p,a,b)      (p)->lpVtbl->Initialize(p,a,b)
-	/*** IDirectInput2W methods ***/
-#define IDirectInput7W_FindDevice(p,a,b,c)    (p)->lpVtbl->FindDevice(p,a,b,c)
-	/*** IDirectInput7W methods ***/
-#define IDirectInput7W_CreateDeviceEx(p,a,b,c,d) (p)->lpVtbl->CreateDeviceEx(p,a,b,c,d)
+#define IDirectInput7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectInput7_AddRef(p)             (p)->lpVtbl->AddRef(p)
+#define IDirectInput7_Release(p)            (p)->lpVtbl->Release(p)
+	/*** IDirectInput methods ***/
+#define IDirectInput7_CreateDevice(p,a,b,c)  (p)->lpVtbl->CreateDevice(p,a,b,c)
+#define IDirectInput7_EnumDevices(p,a,b,c,d) (p)->lpVtbl->EnumDevices(p,a,b,c,d)
+#define IDirectInput7_GetDeviceStatus(p,a)   (p)->lpVtbl->GetDeviceStatus(p,a)
+#define IDirectInput7_RunControlPanel(p,a,b) (p)->lpVtbl->RunControlPanel(p,a,b)
+#define IDirectInput7_Initialize(p,a,b)      (p)->lpVtbl->Initialize(p,a,b)
+	/*** IDirectInput2 methods ***/
+#define IDirectInput7_FindDevice(p,a,b,c)    (p)->lpVtbl->FindDevice(p,a,b,c)
+	/*** IDirectInput7 methods ***/
+#define IDirectInput7_CreateDeviceEx(p,a,b,c,d) (p)->lpVtbl->CreateDeviceEx(p,a,b,c,d)
 #endif
 
 #endif /* DI7 */
@@ -1656,22 +1611,6 @@
 ICOM_DEFINE(IDirectInput8A,IUnknown)
 #undef INTERFACE
 
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IDirectInput8A_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInput8A_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectInput8A_Release(p)            (p)->lpVtbl->Release(p)
-      /*** IDirectInput8A methods ***/
-#define IDirectInput8A_CreateDevice(p,a,b,c)       (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInput8A_EnumDevices(p,a,b,c,d)      (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInput8A_GetDeviceStatus(p,a)        (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInput8A_RunControlPanel(p,a,b)      (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInput8A_Initialize(p,a,b)           (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectInput8A_FindDevice(p,a,b,c)         (p)->lpVtbl->FindDevice(p,a,b,c)
-#define IDirectInput8A_EnumDevicesBySemantics(p,a,b,c,d,e) (p)->lpVtbl->EnumDevicesBySemantics(p,a,b,c,d,e)
-#define IDirectInput8A_ConfigureDevices(p,a,b,c,d) (p)->lpVtbl->ConfigureDevices(p,a,b,c,d)
-#endif
-
 /*****************************************************************************
  * IDirectInput8W interface
  */
@@ -1691,18 +1630,18 @@
 
 #ifdef COBJMACROS
 /*** IUnknown methods ***/
-#define IDirectInput8W_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDirectInput8W_AddRef(p)             (p)->lpVtbl->AddRef(p)
-#define IDirectInput8W_Release(p)            (p)->lpVtbl->Release(p)
-      /*** IDirectInput8W methods ***/
-#define IDirectInput8W_CreateDevice(p,a,b,c)       (p)->lpVtbl->CreateDevice(p,a,b,c)
-#define IDirectInput8W_EnumDevices(p,a,b,c,d)      (p)->lpVtbl->EnumDevices(p,a,b,c,d)
-#define IDirectInput8W_GetDeviceStatus(p,a)        (p)->lpVtbl->GetDeviceStatus(p,a)
-#define IDirectInput8W_RunControlPanel(p,a,b)      (p)->lpVtbl->RunControlPanel(p,a,b)
-#define IDirectInput8W_Initialize(p,a,b)           (p)->lpVtbl->Initialize(p,a,b)
-#define IDirectInput8W_FindDevice(p,a,b,c)         (p)->lpVtbl->FindDevice(p,a,b,c)
-#define IDirectInput8W_EnumDevicesBySemantics(p,a,b,c,d,e) (p)->lpVtbl->EnumDevicesBySemantics(p,a,b,c,d,e)
-#define IDirectInput8W_ConfigureDevices(p,a,b,c,d) (p)->lpVtbl->ConfigureDevices(p,a,b,c,d)
+#define IDirectInput8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectInput8_AddRef(p)             (p)->lpVtbl->AddRef(p)
+#define IDirectInput8_Release(p)            (p)->lpVtbl->Release(p)
+      /*** IDirectInput8 methods ***/
+#define IDirectInput8_CreateDevice(p,a,b,c)       (p)->lpVtbl->CreateDevice(p,a,b,c)
+#define IDirectInput8_EnumDevices(p,a,b,c,d)      (p)->lpVtbl->EnumDevices(p,a,b,c,d)
+#define IDirectInput8_GetDeviceStatus(p,a)        (p)->lpVtbl->GetDeviceStatus(p,a)
+#define IDirectInput8_RunControlPanel(p,a,b)      (p)->lpVtbl->RunControlPanel(p,a,b)
+#define IDirectInput8_Initialize(p,a,b)           (p)->lpVtbl->Initialize(p,a,b)
+#define IDirectInput8_FindDevice(p,a,b,c)         (p)->lpVtbl->FindDevice(p,a,b,c)
+#define IDirectInput8_EnumDevicesBySemantics(p,a,b,c,d,e) (p)->lpVtbl->EnumDevicesBySemantics(p,a,b,c,d,e)
+#define IDirectInput8_ConfigureDevices(p,a,b,c,d) (p)->lpVtbl->ConfigureDevices(p,a,b,c,d)
 #endif
 
 #endif /* DI8 */
Les sous-répertoires dlls/dinput.3/CVS et dlls/dinput/CVS sont identiques.
diff -u dlls/dinput.3/device.c dlls/dinput/device.c
--- dlls/dinput.3/device.c	2003-06-12 00:53:31.000000000 +0200
+++ dlls/dinput/device.c	2003-06-12 00:41:46.000000000 +0200
@@ -306,7 +306,7 @@
     ddtmp.wReserved           = lpddi->wReserved;
   }
 #endif
-  return data->lpCallBack(&ddtmp, lpvRef);
+  return data->lpCallBack(&ddtmp, data->lpvRef);
 }
 
 /******************************************************************************
Seulement dans dlls/dinput: dinput.dll.dbg.c
diff -u dlls/dinput.3/dinput_main.c dlls/dinput/dinput_main.c
--- dlls/dinput.3/dinput_main.c	2003-06-12 00:53:38.000000000 +0200
+++ dlls/dinput/dinput_main.c	2003-06-12 00:41:47.000000000 +0200
@@ -184,8 +184,7 @@
  */
 static HRESULT WINAPI IDirectInputAImpl_EnumDevices(
 	LPDIRECTINPUT7A iface, DWORD dwDevType, LPDIENUMDEVICESCALLBACKA lpCallback,
-	LPVOID pvRef, DWORD dwFlags
-)
+	LPVOID pvRef, DWORD dwFlags)
 {
 	ICOM_THIS(IDirectInputImpl,iface);
 	DIDEVICEINSTANCEA devInstance;
@@ -599,8 +598,11 @@
 
 	TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
 	if ( IsEqualGUID( &IID_IDirectInputA, riid ) ||
+	     IsEqualGUID( &IID_IDirectInputW, riid ) ||
 	     IsEqualGUID( &IID_IDirectInput2A, riid ) ||
+	     IsEqualGUID( &IID_IDirectInput2W, riid ) ||
 	     IsEqualGUID( &IID_IDirectInput7A, riid ) ||
+	     IsEqualGUID( &IID_IDirectInput7W, riid ) ||
 	     IsEqualGUID( &IID_IDirectInput8A, riid ) ||
 	     IsEqualGUID( &IID_IDirectInput8W, riid ) ) {
 		/* FIXME: reuse already created dinput if present? */
Seulement dans dlls/dinput: dinput.spec.c
Seulement dans dlls/dinput.3: dinput.spec.orig
Seulement dans dlls/dinput.3: dinput.spec.rej
Les sous-répertoires dlls/dinput.3/joystick et dlls/dinput/joystick sont identiques.
Les sous-répertoires dlls/dinput.3/keyboard et dlls/dinput/keyboard sont identiques.
Les sous-répertoires dlls/dinput.3/mouse et dlls/dinput/mouse sont identiques.


More information about the wine-patches mailing list