- Fix an exception when trying to populate GroupBy and SortBy menus...
9c3234a2
Dimitar Tsenev
committed
9 changed files
MainWindow.xaml.cs
/BExplorer/BetterExplorer/MainWindow.xaml.cs
/BExplorer/BetterExplorer/MainWindow.xaml.cs
IListView.cs
/Shell/Interop/IListView.cs+151
/Shell/Interop/IListView.cs
Add comment 1 Plus  using System;
Add comment 2 Plus  using System.Runtime.InteropServices;
Add comment 3 Plus  
Add comment 4 Plus  namespace BExplorer.Shell.Interop {
Add comment 5 Plus   [ComImport]
Add comment 6 Plus   [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
Add comment 7 Plus   [Guid("E5B16AF2-3990-4681-A609-1F060CD14269")]
Add comment 8 Plus   public interface IListView {
Add comment 9 Plus   void GetWindow(out IntPtr phwnd);
Add comment 10 Plus   void ContextSensitiveHelp([In, MarshalAs(UnmanagedType.Bool)] bool fEnterMode);
Add comment 11 Plus   void GetImageList(int index, out IntPtr iList);
Add comment 12 Plus   void SetImageList(int index, IntPtr iList, out IntPtr iListDest);
Add comment 13 Plus   void GetBackgroundColor(out IntPtr colorref);
Add comment 14 Plus   void SetBackgroundColor(IntPtr colorref);
Add comment 15 Plus   void GetTextColor(out IntPtr colorref);
Add comment 16 Plus   void SetTextColor(IntPtr colorref);
Add comment 17 Plus   void GetTextBackgroundColor(out IntPtr colorref);
Add comment 18 Plus   void SetTextBackgroundColor(IntPtr colorref);
Add comment 19 Plus   void GetHotLightColor(out IntPtr colorref);
Add comment 20 Plus   void SetHotLightColor(IntPtr colorref);
Add comment 21 Plus   void GetItemCount(out int count);
Add comment 22 Plus   void SetItemCount(int count, uint p);
Add comment 23 Plus   HResult GetItem(out IntPtr item);
Add comment 24 Plus   HResult SetItem(IntPtr item);
Add comment 25 Plus   HResult GetItemState(int iItem, LVIF mask, LVIS stateMask, out LVIS state);
Add comment 26 Plus   HResult SetItemState(int iItem, LVIF mask, LVIS stateMask, LVIS state);
Add comment 27 Plus   HResult GetItemText(int a, int b, out IntPtr c, int d);
Add comment 28 Plus   HResult SetItemText(int a, int b, IntPtr c);
Add comment 29 Plus   void GetBackgroundImage(out IntPtr bitmap);
Add comment 30 Plus   void SetBackgroundImage(IntPtr bitmap);
Add comment 31 Plus   void GetFocusedColumn(out int col);
Add comment 32 Plus   void SetSelectionFlags(ulong a, ulong b);
Add comment 33 Plus   HResult GetSelectedColumn(out int col);
Add comment 34 Plus   HResult SetSelectedColumn(int col);
Add comment 35 Plus   HResult GetView(out uint view);
Add comment 36 Plus   HResult SetView(uint view);
Add comment 37 Plus   HResult InsertItem(IntPtr item, out int index);
Add comment 38 Plus   HResult DeleteItem(int index);
Add comment 39 Plus   HResult DeleteAllItems();
Add comment 40 Plus   HResult UpdateItem(int index);
Add comment 41 Plus   HResult GetItemRect(LVITEMINDEX index, int a, out User32.RECT rect);
Add comment 42 Plus   HResult GetSubItemRect(LVITEMINDEX index, int a, int b, out User32.RECT rect);
Add comment 43 Plus   HResult HitTestSubItem(LVHITTESTINFO info);
Add comment 44 Plus   HResult GetIncrSearchString(IntPtr a, int b, out int c);
Add comment 45 Plus   HResult GetItemSpacing(bool a, out int b, out int c);
Add comment 46 Plus   HResult SetIconSpacing(int a, int b, out int c, out int d);
Add comment 47 Plus   HResult GetNextItem(LVITEMINDEX index, ulong flags, out LVITEMINDEX result);
Add comment 48 Plus   HResult FindItem(LVITEMINDEX index, IntPtr info, out LVITEMINDEX item);
Add comment 49 Plus   HResult GetSelectionMark(out LVITEMINDEX mark);
Add comment 50 Plus   HResult SetSelectionMark(LVITEMINDEX index, out LVITEMINDEX result);
Add comment 51 Plus   HResult GetItemPosition(LVITEMINDEX index, out POINT position);
Add comment 52 Plus   HResult SetItemPosition(int a, POINT p);
Add comment 53 Plus   HResult ScrollView(int a, int b);
Add comment 54 Plus   HResult EnsureItemVisible(LVITEMINDEX item, Boolean b);
Add comment 55 Plus   HResult EnsureSubItemVisible(LVITEMINDEX item, int a);
Add comment 56 Plus   HResult EditSubItem(LVITEMINDEX item, int a);
Add comment 57 Plus   HResult RedrawItems(int a, int b);
Add comment 58 Plus   HResult ArrangeItems(int a);
Add comment 59 Plus   HResult RecomputeItems(int a);
Add comment 60 Plus   HResult GetEditControl(out IntPtr handle);
Add comment 61 Plus   HResult EditLabel(LVITEMINDEX index, IntPtr a, out IntPtr handle);
Add comment 62 Plus   HResult EditGroupLabel(int a);
Add comment 63 Plus   HResult CancelEditLabel();
Add comment 64 Plus   HResult GetEditItem(out LVITEMINDEX item, out int a);
Add comment 65 Plus   HResult HitTest(ref LVHITTESTINFO result);
Add comment 66 Plus   HResult GetStringWidth(IntPtr a, out int b);
Add comment 67 Plus   HResult GetColumn(int a, out IntPtr col);
Add comment 68 Plus   HResult SetColumn(int a, ref IntPtr col);
Add comment 69 Plus   HResult GetColumnOrderArray(int a, out IntPtr b);
Add comment 70 Plus   HResult SetColumnOrderArray(int a, ref IntPtr b);
Add comment 71 Plus   HResult GetHeaderControl(out IntPtr header);
Add comment 72 Plus   HResult InsertColumn(int a, ref IntPtr b, out int c);
Add comment 73 Plus   HResult DeleteColumn(int a);
Add comment 74 Plus   HResult CreateDragImage(int a, POINT b, out IntPtr c);
Add comment 75 Plus   HResult GetViewRect(out User32.RECT rect);
Add comment 76 Plus   HResult GetClientRect(Boolean a, out User32.RECT b);
Add comment 77 Plus   HResult GetColumnWidth(int a, out int b);
Add comment 78 Plus   HResult SetColumnWidth(int a, int b);
Add comment 79 Plus   HResult GetCallbackMask(out long a);
Add comment 80 Plus   HResult SetCallbackMask(out long b);
Add comment 81 Plus   HResult GetTopIndex(out int a);
Add comment 82 Plus   HResult GetCountPerPage(out int a);
Add comment 83 Plus   HResult GetOrigin(out POINT p);
Add comment 84 Plus   HResult GetSelectedCount(out int a);
Add comment 85 Plus   HResult SortItems(bool a, IntPtr b, IntPtr c);
Add comment 86 Plus   HResult GetExtendedStyle(out IntPtr s);
Add comment 87 Plus   HResult SetExtendedStyle(long a, long b, out long c);
Add comment 88 Plus   HResult GetHoverTime(out uint a);
Add comment 89 Plus   HResult SetHoverTime(uint a, out uint b);
Add comment 90 Plus   HResult GetToolTip(out IntPtr a);
Add comment 91 Plus   HResult SetToolTip(IntPtr a, out IntPtr b);
Add comment 92 Plus   HResult GetHotItem(out LVITEMINDEX a);
Add comment 93 Plus   HResult SetHotItem(LVITEMINDEX a, out LVITEMINDEX b);
Add comment 94 Plus   HResult GetHotCursor(out IntPtr a);
Add comment 95 Plus   HResult SetHotCursor(IntPtr a, out IntPtr b);
Add comment 96 Plus   HResult ApproximateViewRect(int a, out int b, out int c);
Add comment 97 Plus   HResult SetRangeObject(int a, out IntPtr b);
Add comment 98 Plus   HResult GetWorkAreas(int a, out User32.RECT b);
Add comment 99 Plus   HResult SetWorkAreas(int a, ref User32.RECT b);
Add comment 100 Plus   HResult GetWorkAreaCount(out IntPtr a);
Add comment 101 Plus   HResult ResetEmptyText();
Add comment 102 Plus   HResult EnableGroupView(int a);
Add comment 103 Plus   HResult IsGroupViewEnabled(out Boolean result);
Add comment 104 Plus   HResult SortGroups(IntPtr a, IntPtr b);
Add comment 105 Plus   HResult GetGroupInfo(int a, int b, out IntPtr c);
Add comment 106 Plus   HResult SetGroupInfo(int a, int b, IntPtr c);
Add comment 107 Plus   HResult GetGroupRect(bool a, int b, int c, out User32.RECT d);
Add comment 108 Plus   HResult GetGroupState(int a, long b, out long c);
Add comment 109 Plus   HResult HasGroup(int a, out bool b);
Add comment 110 Plus   HResult InsertGroup(int index, LVGROUP2 collumn,out int position);
Add comment 111 Plus   HResult RemoveGroup(int index);
Add comment 112 Plus   HResult InsertGroupSorted(IntPtr a, out int b);
Add comment 113 Plus   HResult GetGroupMetrics(out IntPtr a);
Add comment 114 Plus   HResult SetGroupMetrics(IntPtr a);
Add comment 115 Plus   HResult RemoveAllGroups();
Add comment 116 Plus   HResult GetFocusedGroup(out int a);
Add comment 117 Plus   HResult GetGroupCount(out int a);
Add comment 118 Plus   HResult SetOwnerDataCallback(IntPtr callback);
Add comment 119 Plus   HResult GetTileViewInfo(out LVTILEVIEWINFO a);
Add comment 120 Plus   HResult SetTileViewInfo(ref LVTILEVIEWINFO a);
Add comment 121 Plus   HResult GetTileInfo(out IntPtr a);
Add comment 122 Plus   HResult SetTileInfo(IntPtr a);
Add comment 123 Plus   HResult GetInsertMark(out IntPtr a);
Add comment 124 Plus   HResult SetInsertMark(IntPtr a);
Add comment 125 Plus   HResult GetInsertMarkRect(out User32.RECT a);
Add comment 126 Plus   HResult GetInsertMarkColor(out IntPtr a);
Add comment 127 Plus   HResult SetInsertMarkColor(IntPtr a, out IntPtr b);
Add comment 128 Plus   HResult HitTestInsertMark(POINT a, out IntPtr b);
Add comment 129 Plus   HResult SetInfoTip(IntPtr a);
Add comment 130 Plus   HResult GetOutlineColor(out IntPtr a);
Add comment 131 Plus   HResult SetOutlineColor(IntPtr a, out IntPtr b);
Add comment 132 Plus   HResult GetFrozenItem(out int a);
Add comment 133 Plus   HResult SetFrozenItem(int a, int b);
Add comment 134 Plus   HResult GetFrozenSlot(out User32.RECT a);
Add comment 135 Plus   HResult SetFrozenSlot(int a, ref POINT p);
Add comment 136 Plus   HResult GetViewMargin(out User32.RECT a);
Add comment 137 Plus   HResult SetViewMargin(ref User32.RECT a);
Add comment 138 Plus   HResult SetKeyboardSelected(LVITEMINDEX index);
Add comment 139 Plus   HResult MapIndexToId(int a, out int b);
Add comment 140 Plus   HResult MapIdToIndex(int a, out int b);
Add comment 141 Plus   HResult IsItemVisible(LVITEMINDEX a, out bool b);
Add comment 142 Plus   HResult GetGroupSubsetCount(out int a);
Add comment 143 Plus   HResult SetGroupSubsetCount(int a);
Add comment 144 Plus   HResult GetVisibleSlotCount(out int a);
Add comment 145 Plus   HResult GetColumnMargin(ref User32.RECT a);
Add comment 146 Plus   HResult SetSubItemCallback(IntPtr a);
Add comment 147 Plus   HResult GetVisibleItemRange(out LVITEMINDEX a, out LVITEMINDEX b);
Add comment 148 Plus   HResult SetTypeAheadFlags(uint a, uint b);
Add comment 149 Plus   }
Add comment 150 Plus  }
Add comment 151 Plus  
User32.cs
/Shell/Interop/User32.cs
/Shell/Interop/User32.cs
Defaults.cs
/Shell/Defaults.cs
/Shell/Defaults.cs
FOperationProgressSink.cs
/Shell/FOperationProgressSink.cs
/Shell/FOperationProgressSink.cs
Shell.csproj
/Shell/Shell.csproj
/Shell/Shell.csproj
ShellViewEx.cs
/Shell/ShellViewEx.cs
/Shell/ShellViewEx.cs
TooltipDataTemplateSelector.cs
/Shell/TooltipDataTemplateSelector.cs
/Shell/TooltipDataTemplateSelector.cs
imdiskinst.exe
/imdiskinst.exe
/imdiskinst.exe