This is a simple DLL that will eneumerate all mice attached to the PC and provide their input.
This DLL was written by andbna and uses X-tra Fear's GMaker library.
It is open source. No credit necessary for use.

Instructions:

Setup:
GM6/DLL: Call InitWIM(listID) to setup the DLL, passing it a ds_list ID. This list will store the ID's of the mice found. This can be used to keep track of them.
This function returns the number of mice found.
GM7: Same deal, except you also have to pass the window_handle() to the function: InitWIM(window_handle,listID) 
when using the GEX.

Shutdown:
Call DeinitWIM() to free the DLL.

Getting the input:

There is only 1 function to get the input, and that is:
GetWIMInput(ds_listID);

The only argument, ds_listID, is the ID of a List Datastructure you have created.
This datastructure is filled with the input of the mice.

Each mouse is structured such that it has the usual x,y axis, a scrollwheel, and 5 buttons, even if it doesnt have a scrollwheel or all 5 buttons.

NOTE: mouse input is in RELATIVE coordinates. This means you are told how much the mouse MOVED from step to step, but NOT it's absolute position.
So, even if the mouse is centred on screen, if the user does not move it, the input will be 0 for it's x and y.

Onto actualy using the input:

The DS List will be filled like so:

at index 0: mouse 1's ID
at index 1: mouse 1's x
at index 2: mouse 1's y
at index 3: mouse 1's scrollwheel
at index 4: mouse 1's first button
at index 5: mouse 1's second button
at index 6: mouse 1's third button
at index 7: mouse 1's fourth button
at index 8: mouse 1's fifth button

at index 9: mouse 2's ID
at index 10: mouse 2's x
at index 11: mouse 2's y
...etc, and so on for every mouse.

So, if you said: ds_list_find_value(MyList,15), you would recieve the state of Mouse 2's third button.

Values of mouse button inputs: 
-1 - released.
1- pressed.
0 - no change.

NOTE: a value of 1 is NOT continualy generated while the mouse is pressed; just once.

Simple eanough? :)

There is a GM7 example included. 

