Calling SetCursorPos doesn't seem like a good idea, it will forcefully move the host cursor to wherever Wine believe the cursor is, which may be off, causing spurious cursor jumps whenever a window is moved, even if it doesn't have focus (and we can't rely on Wine focus tracking either because it's often wrong). I also expect it to cause a lot of problems when a window is dragged around as it'll generate SetWindowPos calls, while the host cursor position itself is being used to move the window.
We should not try to change the host cursor position, but rather simply artificially generate whatever messages we need.