BExplorer.Shell.ShellView.SetSortIcon C# (CSharp) Method

SetSortIcon() private method

This is only to be used in SetSortCollumn(...)
private SetSortIcon ( Int32 columnIndex, SortOrder order ) : void
columnIndex Int32
order SortOrder
return void
    private void SetSortIcon(Int32 columnIndex, SortOrder order) {
      IntPtr columnHeader = User32.SendMessage(this.LVHandle, MSG.LVM_GETHEADER, 0, 0);
      for (Int32 columnNumber = 0; columnNumber <= this.Collumns.Count - 1; columnNumber++) {
        var item = new HDITEM { mask = HDITEM.Mask.Format };

        if (User32.SendMessage(columnHeader, MSG.HDM_GETITEM, columnNumber, ref item) == IntPtr.Zero) {
          throw new Win32Exception();
        }

        if (order != SortOrder.None && columnNumber == columnIndex) {
          switch (order) {
            case SortOrder.Ascending:
              item.fmt &= ~HDITEM.Format.SortDown;
              item.fmt |= HDITEM.Format.SortUp;
              break;

            case SortOrder.Descending:
              item.fmt &= ~HDITEM.Format.SortUp;
              item.fmt |= HDITEM.Format.SortDown;
              break;
          }
        } else {
          item.fmt &= ~HDITEM.Format.SortDown & ~HDITEM.Format.SortUp;
        }

        if (User32.SendMessage(columnHeader, MSG.HDM_SETITEM, columnNumber, ref item) == IntPtr.Zero) {
          throw new Win32Exception();
        }
      }
    }
ShellView