Copy to correct offset.

Offset into image is y * stride, not y * bpp.
No need for named variable.
Respond to WM_SETCURSOR messages.

Calling SetCursor on mouse moves is not enough, we need to respond to
SETCURSOR messages. If we have a custom cursor we need to call SetCursor
and then NOT call DefWindowProc, otherwise we just call DefWindowProc
for the forms default cursor.