Here is another way to do it that you may want to consider.
Many programming environments for PCs have an API for manipulating the mouse cursor and that may be an easier way to do it if you can use a language like VB. The APIs are called something like setcursorpos and getcursorpos and your sketch could send serial data to manipulate the mouse cursor without having to emulate the mouse protocol.
The PC program could get the current X and Y mouse co-ordinates when it wanted to take control of the mouse and then monitor the serial port for messages from the Arduino containing cursor updates that would be passed to the SetCursorPos function to change the mouse pointer position.