A question that seems to come up quite frequently about the Windows MultiPoint SDK is whether this can be used to have multiple mouse pointers outside of a specific application? The answer is no. The current MultiPoint SDK works by essentially hiding the main system cursor and simulating mouse pointers with custom drawn windows (one window for each mouse cursor). Of course this leads to a bunch of issues around using standard WPF controls and styling in your application – you can’t! You need to use MultiPoint enabled controls, such as the button and textbox that ship with the sdk, and you need to adjust styles/templates to use MultiPoint properties and events rather than the standard WPF properties/events.
This question does lead into the broader question of why having multiple mouse pointers isn’t available in Windows. There appears to be increasing demand for this, particularly in developing nations where it makes computing much more viable to have multiple people using a single computer. Other new technologies such as Surface are also highlighting how important collaboration and learning is, and how technologies which incorporate multi-touch or multi-cursor can enhance this process.
Will we get multiple pointers in a future version of Windows? Perhaps, but if you look historically at the way applications have always been built you can see that they are built with a single point of focus in mind. Adding multiple pointers means that Windows would need to support multiple active cursors. This leads to the issue of how applications that only understand about a single point of activity will be able to handle multiple cursors. Just “enabling” multiple pointers/cursors doesn’t fix the issue that applications are designed with a single user in mind.
This point applies to using the current MultiPoint SDK. Don’t just assume that you can MultiPoint enable your application! In most scenarios building a MultiPoint application involves rethinking how your entire application functions to base it on collaboration, rather than single use.