BetterExplorer.MainWindow.newt_DragOver C# (CSharp) Method

newt_DragOver() private method

private newt_DragOver ( object sender, DragEventArgs e ) : void
sender object
e DragEventArgs
return void
    void newt_DragOver(object sender, DragEventArgs e) {
      e.Handled = true;

      var tabItemSource = e.Data.GetData(typeof(Wpf.Controls.TabItem)) as Wpf.Controls.TabItem;

      if ((sender as Wpf.Controls.TabItem).ShellObject.IsFileSystem)
        e.Effects = (e.KeyStates & DragDropKeyStates.ControlKey) == DragDropKeyStates.ControlKey ? DragDropEffects.Copy : DragDropEffects.Move;
      else if (tabItemSource != null)
        e.Effects = DragDropEffects.Move;
      else
        e.Effects = DragDropEffects.None;

      var desc = new BExplorer.Shell.DataObject.DropDescription();

      switch (e.Effects) {
        case DragDropEffects.Copy:
          desc.type = (int)BExplorer.Shell.DataObject.DropImageType.Copy;
          desc.szMessage = "Copy To %1";
          break;
        case DragDropEffects.Move:
          desc.type = (int)BExplorer.Shell.DataObject.DropImageType.Move;
          desc.szMessage = "Move To %1";
          break;
        case DragDropEffects.None:
          desc.type = (int)BExplorer.Shell.DataObject.DropImageType.None;
          desc.szMessage = "Cant drop here!";
          break;
        default:
          desc.type = (int)BExplorer.Shell.DataObject.DropImageType.Invalid;
          desc.szMessage = "";
          break;
      }
      desc.szInsert = (sender as Wpf.Controls.TabItem).ShellObject.DisplayName;
      ((System.Runtime.InteropServices.ComTypes.IDataObject)e.Data).SetDropDescription(desc);

      var ptw = new BExplorer.Shell.DataObject.Win32Point();
      GetCursorPos(ref ptw);

      if (e.Data.GetType() != typeof(Wpf.Controls.TabItem)) {
        var wpt = new BExplorer.Shell.DataObject.Win32Point() { X = ptw.X, Y = ptw.Y };
        DropTarget.Create.DragOver(ref wpt, (int)e.Effects);
      }
    }
    System.Runtime.InteropServices.ComTypes.IDataObject _TabDropData;
MainWindow