Our goal is the create a application sharing system that allows users to drag the applications off-screen into other people's desktops for them to use while maintaining control of the local desktop. Currently we plan to implement it by creating a virtual screen and placing the shared application there. VNC will then be used to stream windows to peers and input will be routed over. The problem I am facing is that Win32 only has one input queue and allows input only to the active window. This is a deal breaker as we wanted to send input coming in from the network to a specific, background application on the virtual screen. We have to do this as the active window from the local user's perspective will some other program they are actually controlling on their real, physical desktop. I want to write a wrapper for the Win32 DLL(s) and reimplement the window management with multiple input queues/multiple activate windows. I don't need multiple mouse pointers (altough that has been done by CPN Mouse) to achieve this as I just need to route calls like SendInput to the desired background application (clicks, drags, over, up/down and keystrokes). The sharing platform will handle mouse cursors and resizing on the client side. I was hoping developers here will have some insight on where I should start looking and whether the entire modification is in just one DLL, a collection of them and whether it is even feasible to do such a thing at.