Maybe its the SendInput method of moving the mouse that causes the cursor to 'not move' as you claim? It looks like this is the case here is the MOUSEINPUT structure that is used for the SendInput call: MOUSEEVENTF_MOVE 0x0001 Movement occurred. If the mouse has moved, indicated by MOUSEEVENTF_MOVE, dx and dy specify information about that movement.
I would like to click my middle mouse button and have it tell Windows to left click. Set mouse or keyboard button to simulate left click and hold or rapid left.
The information is specified as absolute or relative integer values. From that wording, it seems that the MOUSEEVENTF_MOVE sends a message that the mouse has already finished moving?