Detecting Shift/Ctrl/Alt in Drag-n-Drop ?

How does one detect if a user presses some key (in particular, Shift,
Control, or Alt) DURING a drag-and-drop operation? Obviously, I wish to
enable the use of modifier keys to control the behaviour of the operations,
and decide between such actions as copy or move. [BTW, I need the key
to be detected by the component that initiated the drag, not the one
receiving the drop.]

I can easily detect such keys at the time of the mouse-down prior to
the drag-and-drop, but I do not like this option from a user-interface
perspective, as it does not allow for the user changing their mind on
the fly.

During the drag-and-drop, however, it seems all mouse/key
events are "eaten" until the mouse-up and consequently until the end
of the drag operation (i.e. too late). Am I doing anything wrong?

--
Wratko HLAVINA - HTTP://www.csi.uottawa.ca/~whlavina \ SunOS/Linux/NeXT \
The RatMan! English/Francais: whlav...@csi.uottawa.ca \ DOS, Win, Win95, \
DISCLAIMER: w/1600x1200 video @ 17", I can't guarantee \ OS/2, CMS/VM ... \
/_/_/_/_/_/ my sanity nor the accuracy of what I write. \ Wish I had a Mac \