ClearCanvas.Desktop.View.WinForms.BindingTreeView.GetDragDropDesiredEffect C# (CSharp) Method

GetDragDropDesiredEffect() private method

Returns the desired effect, chosen from the allowed effects in the DragEventArgs. The user indicates the desired effect (move/copy/link) by using modifier keys. Copied this logic from MSDN - seems to be standard windows convention.
private GetDragDropDesiredEffect ( DragEventArgs e ) : DragDropEffects
e System.Windows.Forms.DragEventArgs
return DragDropEffects
        private DragDropEffects GetDragDropDesiredEffect(DragEventArgs e)
        {
            // Set the effect based upon the KeyState.
            if ((e.KeyState & (8 + 32)) == (8 + 32) &&
                (e.AllowedEffect & DragDropEffects.Link) == DragDropEffects.Link)
            {
                // KeyState 8 + 32 = CTL + ALT
                // Link drag-and-drop effect.
                return DragDropEffects.Link;
            }
            else if ((e.KeyState & 32) == 32 &&
                (e.AllowedEffect & DragDropEffects.Link) == DragDropEffects.Link)
            {
                // ALT KeyState for link.
                return DragDropEffects.Link;
            }
            else if ((e.KeyState & 4) == 4 &&
              (e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move)
            {
                // SHIFT KeyState for move.
                return DragDropEffects.Move;
            }
            else if ((e.KeyState & 8) == 8 &&
              (e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy)
            {
                // CTL KeyState for copy.
                return DragDropEffects.Copy;
            }
            else if ((e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move)
            {
                // By default, the drop action should be move, if allowed.
                return DragDropEffects.Move;
            }

            return DragDropEffects.None;
        }