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;
 	  }