If you look around for starcraft on the forums here, I think they talk about faking multitouch using macros. As for actually making the program multitouch, that wont happen without source code. So, perhaps for something like photoshop, you could use an opensource clone, like GIMP and modify that to support multitouch. I would suspect that would be quiet a difficult project though..
Problem is that especially with photoshop you want to use the right-mouse button and probably presure sensitivity… (and lots more of course) Mouse-emulators don’t do stuff like that. So you might want to program a kind of overlay which can do stuff like that. But my guess is that it is much easier at the moment to mod a program like the GIMP to do that…
I have also been wondering how it could be done. The fundamental problem is really that conventional applications like Photoshop are constructed to recieve serial input - one thing at a time. An optimal solution would certanly be that multi touch was embedded in the OS, and I bet both Microsoft and Apple are working on it. But until the realization of at fully functional multi touch OS, we must find our own solutions.
The simplest way I can think of is to simulate multi touch with mouse events. This could be done by doing the following: When a touch is recieved, create a mouse pointer and make a left click. Think of it in this way: youre fingers are the cursors, and as long as you don’t touch the surface, you are just moving the cursors around like moving the mouse around, without clicking. When you touch the surface it means that you want to manipulate something. Translated into mouse events it is a left click.
It is indeed possible to do this sort of hacks. Check out TactaPad with is a hybrid between a trackpad and a multi touch screen (I really wonder why they didn’t make it a screen...maybe because of the tactile feedback) - TactaPad - Here they are creating several pointers in Mac OS X. As far as I can see it is only in their own constructed application that it is possible to do things simultaniously.
Maybe something like ManyMouse or CPN Mouse could be used. I’ve read somewhere that TouchLib can simulate mouse events, but I havn’t tried to figure out how. Anyone?