by manage your windows i mean, if a user opens a new application does your app detect it and allow for that new window to be scaled and rotated?
I have written a .net shell extention that notifies me when a window is created or destroyed, it keeps a managed collection of windows and their positions/rotations/scales. I have also written a multimouse app that displays 2 cursors on the screen to act as input for debugging purposes. My scale/rotate code is kinda sucky at the moment.
For input I decided not to use SendInput because it will limit key presses to a single application, instead ive taken it right down to the window message level and im sending mouse move/click messages directly to the windows themselves, this has lead to a few problems with certain applications because some expect the messages to include the parent windows offset and some dont, but I think i can work arround it by moving all windows to 0,0 and then applying an offset through DWMaxx to keep them appearing at the correct location. Also by sending the messages directly to the windoes it will allow me to apply the scale and rotation to the messages before I send them.