private void ShellTreeView_DragDrop(object sender, DragEventArgs e) {
var hittestInfo = this.ShellTreeView.HitTest(PointToClient(new Point(e.X, e.Y)));
IListItemEx destination = null;
if (hittestInfo.Node == null)
e.Effect = DragDropEffects.None;
else
destination = hittestInfo.Node.Tag as IListItemEx;
switch (e.Effect) {
case DragDropEffects.Copy:
//this.DoCopy(e.Data, destination);
break;
case DragDropEffects.Link:
System.Windows.MessageBox.Show("link");
break;
case DragDropEffects.Move:
this.DoMove(e.Data, destination);
break;
case DragDropEffects.All:
case DragDropEffects.None:
case DragDropEffects.Scroll:
break;
default:
break;
}
var wp = new DataObject.Win32Point() { X = e.X, Y = e.Y };
if (e.Data.GetDataPresent("DragImageBits"))
DropTargetHelper.DropTarget.Create.Drop((System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref wp, (int)e.Effect);
else
base.OnDragDrop(e);
}