Monday, July 06, 2009

Multipoint Collaborative Application

A client walked up to me after a recent presentation asking how to go about having a collaborative multi-mouse based application. I pulled back a bit before responding, quickly kicking around in my head. What will happen if I got multiple input device (mouse devices) in Windows? It should just work. Notebooks has had this features for years and it just work but then I gotta see what happens if I got more mouse.

Secondly, if it does work, how do I differentiate which device is in control in an application. They both most likely will  generate same Windows event. – brain dead lock.

“Ehmm“ I fumbled to respond. “It’s possible but I can’t give you a solution straight up. Can we talk about this again in a couple of weeks.”

I bought an extra USB mouse device (already got a Mogo mouse) on my way home. Connected this up to a notebook and it all worked. All controlled same mouse as expected which left me with the second question. “How do I differentiate this in an application”.

Of course, Google to the rescue. After hours of google(ing) it with B’ing, I came across this article by P. Opdahl from on CodeProject.

It’s quite an interesting Read and done with C++(Not so happy about that, so quick to understand C#, VB and Python these days). I search some more and and more and came across Microsoft Multipoint SDK. How could I have missed this?

SDK is installed with sample application of which I find the Quiz sample most interesting.

image

The Microsoft Multipoint SDK can be downloaded here. Note: This won’t install on Windows 7 unless maybe you install in XP-Mode. I don’t have Intel-VT so this is no option for me.

More Resources

Microsoft Multipoint Blog

3 comments:

Maarten Terpstra said...

Dear Dapo,

Have you tried the following solution? WunderWorks TeamPlayer?
This application allows you to connect multiple input devices and swtich control. Each device is represented by a single cursor.

The TeamPlayer also contains a Sandbox application. Since you have got programming experience you will be able to change these multi user projects!

http://www.wunderworks.com/teamplayer/

Maarten

Unknown said...

Hi Maarten,
Thanks for the suggestion. I will surely give it a try...

Unknown said...

Microsoft recently released an updated version of the Multipoint SDK with fix to some of the stuffs I complained in the blog post above.

Windows MultiPoint Mouse Software Development Kit 1.5
http://bit.ly/4ZytGl

New Features in Windows Multipoint Mouse SDK 1.5:
Now supports Windows 7 and Windows Server 2008 operating systems.
Now supports 32 bit and 64 bit applications and operating systems by leveraging AnyCPU Intermediate Language (IL).
New cursor capabilities were added: you can specify a cursor color, assign a custom image to a cursor, or hide cursors.
New templates for Visual Studio 2008 were added to simplify the creation of MultiPoint Mouse applications.
The namespace changed from Microsoft.MultiPoint to Microsoft.Multipoint to comply with capitalization conventions for .NET
The number of DLLs was reduced from five to two (Microsoft.Multipoint.Sdk.dll and Microsoft.Multipoint.Sdk.Controls.dll)
The object model was simplified, reducing the number of exposed classes, methods, and properties.
The sample code was simplified and made to be compliant with good coding practices, such as FxCop guidelines to help further reduce programming errors.
The sample code for allocating mouse cursors and the number and quality of cursor icons was improved making it easier to allocate custom cursors when creating an application.