Make dinput8 behaviour more correct for mouse and keyboard.
Fix small bug when keyboard buffer overflows.
Use DI_OK instead of 0 for returned values.
diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c
index 7363cc8..9db5478 100644
--- a/dlls/dinput/dinput_main.c
+++ b/dlls/dinput/dinput_main.c
@@ -107,6 +107,7 @@
This = (IDirectInputAImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectInputAImpl));
This->lpVtbl = &ddi7avt;
This->ref = 1;
+ This->version = 1;
*ppDI = This;
return DI_OK;
@@ -117,6 +118,7 @@
This = (IDirectInputAImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectInputAImpl));
This->lpVtbl = &ddi8avt;
This->ref = 1;
+ This->version = 8;
*ppDI = This;
return DI_OK;
@@ -157,7 +159,7 @@
for (i = 0; i < nrof_dinput_devices; i++) {
devInstance.dwSize = sizeof(devInstance);
- if (dinput_devices[i]->enum_device(dwDevType, dwFlags, &devInstance)) {
+ if (dinput_devices[i]->enum_device(dwDevType, dwFlags, &devInstance, This->version)) {
if (lpCallback(&devInstance,pvRef) == DIENUM_STOP)
return 0;
}