Microsoft has an SDK for handling multiple mice. Using the SDK you can get input from up to 25 different mice.
This SDK comes with a comprehensive set of examples.
you start by assigning a MultipointMouse event:
and in the event handler you deal with the mouse data:
private void OnMultipointMouseDown(object sender, RoutedEventArgs e)
var args = (MultipointMouseEventArgs)e;
you can access the device that sent the event:
You can know the state of the buttons:
if (args.Buttons == RawMouseButtons.LeftDown)
The SDK comes with a few easy c# samples.