public void DoCut() { if (IsOldSysListView) { StringCollection sc = new StringCollection(); foreach (ShellObject item in SelectedItems) { sc.Add(item.ParsingName); } Clipboard.SetFileDropList(sc); IsMoveClipboardOperation = true; WindowsAPI.SetFocus(SysListViewHandle); int itemCount = WindowsAPI.SendMessage(SysListViewHandle, WindowsAPI.MSG.LVM_GETITEMCOUNT, 0, 0); for (int n = 0; n < itemCount; ++n) { WindowsAPI.LVITEMA item = new WindowsAPI.LVITEMA(); item.mask = WindowsAPI.LVIF.LVIF_STATE; item.iItem = n; item.stateMask = WindowsAPI.LVIS.LVIS_SELECTED; WindowsAPI.SendMessage(SysListViewHandle, WindowsAPI.MSG.LVM_GETITEMA, 0, ref item); if (item.state != 0) { WindowsAPI.LVITEMA lvItem = new WindowsAPI.LVITEMA(); lvItem.stateMask = WindowsAPI.LVIS.LVIS_CUT; lvItem.state = WindowsAPI.LVIS.LVIS_CUT; WindowsAPI.SendMessage(SysListViewHandle, WindowsAPI.MSG.LVM_SETITEMSTATE, n, ref lvItem); } } } else { WindowsAPI.SetFocus(SysListViewHandle); SendKeys.SendWait("^x"); } }
void OnEscKey() { if (IsOldSysListView) { int itemCount = WindowsAPI.SendMessage(SysListViewHandle, WindowsAPI.MSG.LVM_GETITEMCOUNT, 0, 0); for (int n = 0; n < itemCount; ++n) { WindowsAPI.LVITEMA item = new WindowsAPI.LVITEMA(); item.mask = WindowsAPI.LVIF.LVIF_STATE; item.iItem = n; item.stateMask = WindowsAPI.LVIS.LVIS_CUT; WindowsAPI.SendMessage(SysListViewHandle, WindowsAPI.MSG.LVM_GETITEMA, 0, ref item); if (item.state != 0) { WindowsAPI.LVITEMA lvItem = new WindowsAPI.LVITEMA(); lvItem.stateMask = WindowsAPI.LVIS.LVIS_CUT; lvItem.state = 0; WindowsAPI.SendMessage(SysListViewHandle, WindowsAPI.MSG.LVM_SETITEMSTATE, n, ref lvItem); } } } }