getmousedevice buffer 
UT2004 the mouse are less choopy on my computer now.
and small bug fix. it maby still exists some bug left.
Modified: trunk/reactos/lib/dinput/mouse.c

Modified: trunk/reactos/lib/dinput/mouse.c
--- trunk/reactos/lib/dinput/mouse.c	2005-03-13 00:13:07 UTC (rev 13987)
+++ trunk/reactos/lib/dinput/mouse.c	2005-03-13 01:10:46 UTC (rev 13988)
@@ -869,6 +869,7 @@
 static int save_b[5];
 static int b[5];
 static POINT point;
+int calc;
 int count_button;
 #endif
 
@@ -917,14 +918,17 @@
   time = GetTickCount();
   if (*entries == 0) return DIERR_INVALIDPARAM;
   
-  last_event++;
 
+
   for (count=0;count<*entries;count++) {
 	  
 	 if (save_point.x != point.x) {
-         dod[count_ent].dwOfs =   DIMOFS_X;         
-		 dod[count_ent].dwData =  point.x - save_point.x;		
-		 
+         dod[count].dwOfs =   DIMOFS_X;         
+		 calc = point.x - save_point.x;	
+		 if (calc >2) dod[count].dwData = 2;
+		 else if (calc < -2) dod[count].dwData = -2;
+		 else dod[count].dwData =  calc;	
+         		 
          dod[count].dwTimeStamp =  time +1; 
          dod[count].dwSequence = last_event++;  
 		 count_ent++;
@@ -933,7 +937,10 @@
 
      if (save_point.y != point.y) {
         dod[count].dwOfs =   DIMOFS_Y;
-        dod[count].dwData =    point.y - save_point.y;
+        calc =    point.y - save_point.y;
+		if (calc >2) dod[count].dwData = 2;
+		 else if (calc < -2) dod[count].dwData = -2;
+		 else dod[count].dwData =  calc;	
 
         dod[count].dwTimeStamp =  time +1;
         dod[count].dwSequence = last_event++;