Change drag cursor in mid air

In the mousedown event I can set the dragcursor
before doing BeginDrag(False) so the user has an
indication of whether they're copying or moving
based on the shift state.  This works fine.  But
it is necessary to press control or shift BEFORE
starting the drag.  This is not the way it
should work.

I want the user to be able to press the control
key while dragging and have the drag cursor
change in "mid air".  Keydown doesn't seem to be
fired during a drag operation.  Can anyone
suggest how this can be accomplished in Delphi