unfortunately, even with a hook you still need to globally hide the mouse, even when it is not on top of the active window. the globally hook can read what the mouse is doing anywhere on the screen but it's a different ball of wax to hide it anywhere on the screen.
Cursor.Hide() only works in the active window.
SetSystemCursor() would likely need to be used.