-
Notifications
You must be signed in to change notification settings - Fork 3
/
CHANGELOG
299 lines (206 loc) · 16.1 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
Version 2.6.6 - 27/04/2019
- FIX: Dragging data to certain programs like Total Commander or FileZilla did not work if the data was provided only in the OLESetData event.
Version 2.6.5 - 04/02/2018
- Fixed a crash when calling the ShellTreeView's InvokeDefaultShellContextMenuCommand with an empty TreeViewItems or TreeViewItemContainer collection.
Version 2.6.4 - 29/01/2018
- Upgraded to WTL 10.
- Integrated the GitHub repository into the documentation and the About dialog.
Version 2.6.3 - 10/01/2018
- Project published on GitHub.
Version 2.6.2 - 29/07/2016
- Fixed some memory leaks that occurred when firing certain events.
Version 2.6.1 - 27/01/2016
- FIX: The control could crash during OLE drag'n'drop.
- FIX: The control could crash the other process during OLE drag'n'drop, especially when IOLEDataObject::SetDropDescription() had been called.
Version 2.6.0 - 22/01/2016
- Added the IExplorerTreeView::FinishOLEDragDrop method. It should not be used if not really needed. It can be used to hide the drag image if execution of the OLEDragDrop event takes a long time or if a message is displayed from within this event.
Version 2.5.2 - 24/10/2015
- Extended the ShellBrowser interface to support ITreeViewItem::ExpandedIconIndex.
- Initial support for Windows 10.
Version 2.5.1 - 21/02/2015
- Fixed a bug in the ShellBrowser interface code.
Version 2.5.0 - 01/01/2014
- Added the *MouseWheel events for handling mouse wheel rotations.
- Added the EditXClick, EditXDblClick, XClick, and XDblClick events for support of the extended mouse buttons.
- Extended the EditMouse*, ItemMouse*, and Mouse* events to support the extended mouse buttons.
- FIX: The Font and MouseIcon properties could leak GDI resources.
Version 2.4.0 - 03/11/2013
- Added the ITreeViewItems::FindByPath method.
- Extended the IExplorerTreeView::DisabledEvents property by the deItemGetDisplayInfo flag. It can be used to improve performance if the control is used in combination with the ShellTreeView control.
Version 2.3.0 - 11/11/2012
- Added the IExplorerTreeView::RichToolTips property.
- FIX: The ResizedControlWindow event was not fired when it should have been fired.
- Initial support for Windows 8.
Version 2.2.2 - 04/08/2012
- Extended the HasExpandoConstants enumeration by 'heAuto'.
- Calling ITreeViewItems::Add could result in runtime error 380 (invalid parameter) although all parameters have been valid.
- Reimplemented the subclassing code of the VB6 samples to make it more robust.
Version 2.2.1 - 15/01/2012
- Fixed a crash that could occur during drag'n'drop.
- Fixed a memory leak that occurred during drag'n'drop if Aero drag-images have been used.
Version 2.2.0 - 01/11/2011
- Added the IExplorerTreeView::Locale property.
- Added the IExplorerTreeView::TextParsingFlags property.
- Extended the SortByConstants enumeration by 'sobNumericIntText', 'sobNumericFloatText', 'sobCurrencyText' and 'sobDateTimeText'.
- Changed the default values for the iconIndex, selectedIconIndex and expandedIconIndex parameters of the ItemGetDisplayInfo event from 0 to -2 (no icon).
Version 2.1.1 - 21/05/2011
- FIX: Disabling the control did not move the keyboard focus to the next control in the tab order.
- FIX: The ResizedControlWindow event was fired when actually nothing had changed.
Version 2.1.0 - 24/01/2011
- FIX: The control could crash when it was destroyed.
- FIX: Due do a bug in Microsoft ATL, the control could lose keyboard focus when it shouldn't. This problem occured in MDI applications only. Many thanks to Peter Schellenbach for his help.
- Switched to Visual C++ 2010 and dropped support for Windows 2000.
Version 2.0.0 - 10/07/2010
- Improved info tip support for ANSI build.
- FIX: IOLEDataObject::SetDropDescription could cause crashes in other programs.
- Fixed minor bugs in the ShellBrowserControls interface.
Version 2.0.0 (RC2) - 03/01/2010
- Initial support for Windows 7.
- Added the IExplorerTreeView::OLEDragImageStyle property.
- Added the _IExplorerTreeViewEvents::ChangedSortOrder event.
- Added the _IExplorerTreeViewEvents::ChangingSortOrder event.
- Replaced ITreeViewItem::Height, ITreeViewItem::Left, ITreeViewItem::Top, ITreeViewItem::Width, ITreeViewItem::RowHeight, ITreeViewItem::RowLeft, ITreeViewItem::RowTop, ITreeViewItem::RowWidth and ITreeViewItem::GetExpandoRectangle() with ITreeViewItem::GetRectangle().
- Extended the DropDescriptionIconConstants enumeration by 'ddiUseDefault'.
- Changed the definitions of the RequestedInfoConstants enumeration to fix naming collisions with ComboListBoxControls.
- Changed the type of item texts from VARIANT to BSTR (BSTR is String in Visual Basic 6) to improve performance. When you previously specified 'Empty' to make the ItemGetDisplayInfo event raise, you now need vbNullString (NULL for C++).
- FIX: An access violation could occur when ending label-editing.
- FIX: The TAB key didn't move the focus to the next control if the control was placed inside a VB6 UserControl.
- FIX: If the control was placed on a Form for which the KeyPreview feature was activated, the Form_Key* handler didn't receive key strokes like Alt+PgDown or Alt+Left, if the control had the keyboard focus.
- FIX: The 'shift' parameter that many events have, often missed the ALT key.
- FIX: Drop descriptions didn't work as expected if the drag source was a 64 bit app.
- Massively reduced the usage of GDI handles.
- Made some internal changes that will make it easier for me to keep binary compatibility in future.
- It is no longer necessary to subclass the control's parent window and reflect the WM_CONTEXTMENU message to make the ContextMenu event work.
- Deploy (stripped) symbols with the binaries to make debugging easier. This are the pdb files in case you wonder.
Version 2.0.0 (RC1) - 04/11/2008
- Added the IExplorerTreeView::AutoHScroll property.
- Added the IExplorerTreeView::AutoHScrollPixelsPerSecond property.
- Added the IExplorerTreeView::AutoHScrollRedrawInterval property.
- Added the IExplorerTreeView::BuiltInStateImages property.
- Added the IExplorerTreeView::DrawImagesAsynchronously property.
- Added the IExplorerTreeView::FadeExpandos property.
- Added the IExplorerTreeView::IndentStateImages property.
- Added the ITreeViewItem::ExpandedIconIndex and IVirtualTreeViewItem::ExpandedIconIndex properties.
- Added the ITreeViewItem::Grayed and IVirtualTreeViewItem::Grayed properties.
- Added the ITreeViewItem::ShellTreeViewItemObject property as part of the ShellBrowser interface.
- Added the ITreeViewItem::Virtual and IVirtualTreeViewItem::Virtual properties.
- Added the ITreeViewItem::DisplayInfoTip() method.
- Added the ITreeViewItem::GetExpandoRectangle() method.
- Added the IOLEDataObject::GetDropDescription() method.
- Added the IOLEDataObject::SetDropDescription() method.
- Added the _IExplorerTreeViewEvents::ItemAsynchronousDrawFailed event.
- Added the _IExplorerTreeViewEvents::ItemSelectionChanging event.
- Added the _IExplorerTreeViewEvents::OLEDragEnterPotentialTarget event.
- Added the _IExplorerTreeViewEvents::OLEDragLeavePotentialTarget event.
- Added the _IExplorerTreeViewEvents::OLEReceivedNewData event.
- Removed the IExplorerTreeView::hStateImageList property. Use the IExplorerTreeView::hImageList property instead.
- Removed BkImage support. It caused too many problems and according to the vote, noone uses it anyway.
- Removed MultiSelect support. It caused way too many problems, especially on Windows Vista. NOTE: Now the _IExplorerTreeViewEvents::ItemSelectionChanged event requires comctl32.dll version 6.10 or newer.
- Rewrote the FavoritesStyle feature (ported from ExplorerTreeView 1.12.0). It's working perfectly now.
- Extended IExplorerTreeView::SortItems() by the parameter 'fifthCriterion'.
- Extended ITreeViewItem::SortSubItems() by the parameter 'fifthCriterion'.
- Extended ITreeViewItems::Add() by the parameters 'expandedIconIndex' and 'isVirtual'.
- Extended the _IExplorerTreeViewEvents::ContextMenu event by the parameter 'showDefaultMenu'.
- Extended the _IExplorerTreeViewEvents::ItemGetDisplayInfo event by the parameter 'expandedIconIndex'.
- Changed the _IExplorerTreeViewEvents::OLEDragDrop event to allow changing the drop target. While this is not useful for a plain treeview, it gives you more control over drag'n'drop if a ShellTreeView control is attached and ExplorerTreeView is used for shell-browsing.
- Extended ITreeViewItems filtering support, so that it can filter by the ITreeViewItem::ExpandedIconIndex property.
- Extended ITreeViewItems filtering support, so that it can filter by the ITreeViewItem::Grayed property.
- Extended ITreeViewItems filtering support, so that it can filter by the ITreeViewItem::Virtual property.
- Extended the DisabledEventsConstants enumeration by 'deItemSelectionChangingEvents'.
- Extended the SortByConstants enumeration by 'sobShell'.
- Extended the StateImageChangeCausedByConstants enumeration by 'siccbCode'. NOTE: On Windows Vista, the _IExplorerTreeViewEvents::ItemStateImageChang[ing|ed] events are not only raised if the state image is changed using the mouse or keyboard, but also if it is changed through code!
- Renamed the ITreeViewItem::HasPlusMinusButton property to 'HasExpando'.
- Renamed the IVirtualTreeViewItem::HasPlusMinusButton property to 'HasExpando'.
- Renamed the HasPlusMinusButtonConstants enumeration to 'HasExpandoConstants'. The members of this enumeration have been renamed, too.
- Renamed the 'fpHasPlusMinusButton' member of the FilteredPropertyConstants enumeration to 'fpHasExpando'.
- Renamed the 'htItemButton' member of the HitTestConstants enumeration to 'htItemExpando'.
- Renamed the 'ibbdItemButton' member of the ItemBoundingBoxDefinitionConstants enumeration to 'ibbdItemExpando'.
- Renamed the 'riHasPlusMinusButton' member of the RequestedInfoConstants enumeration to 'riHasExpando'.
- Renamed the 'tvsButtons' member of the TreeViewStyleConstants enumeration to 'tvsExpandos'.
- Renamed the 'hasPlusMinusButton' argument of the ITreeViewItems::Add() method to 'hasExpando'.
- Renamed the 'hasButton' parameter of the _IExplorerTreeViewEvents::ItemGetDisplayInfo event to 'hasExpando'.
- Removed an ugly hack, because it caused several problems. Unfortunately this means, that the ContextMenu event won't work out of the box anymore and that Unicode support is limited. To make both things work 100%, you must implement subclassing. See the FAQ for details.
- Rewrote large parts of the drag'n'drop code resulting in e. g. much better drag images.
- FIX: Keyboard input wasn't processed if the control was placed within a VB6 UserControl.
- FIX: The control crashed if it was destroyed from within an event handler.
- FIX: Moving the control without resizing it could lead to a control width or height of 0.
- FIX: Rewrote IExplorerTreeView::LoadSettingsFromFile() and IExplorerTreeView::SaveSettingsToFile() and updated the file format, because the old format may crash IExplorerTreeView::LoadSettingsFromFile().
- FIX: Changing the font could crash the control.
- FIX: The control could crash if a TreeViewItemContainer object ran out of scope.
- FIX: ITreeViewItems::Contains() didn't return the correct value in some situations.
- FIX: ITreeViewItemContainer::Clone() didn't work as expected.
- FIX: ITreeViewItemContainer::RemoveAll() didn't work as expected.
- FIX: It was possible to create two TreeViewItemContainer objects with the same internal ID. This caused various problems.
- FIX: Changing state images using the mouse couldn't be canceled under all circumstances.
- FIX: Changes were not applied implicitly when jumping between multiple instances of the control with the property pages opened.
- Clicking the caret item of an inactive ExplorerTreeView control no longer starts label-editing mode for this item.
- Fixed some GDI handle leaks.
- Fixed some drawing glitches.
- Improved custom draw support.
- Improved IExplorerTreeView::Font and IExplorerTreeView::MouseIcon.
- Slightly changed the implementation of the HotTracking style 'htrWinXPStyle'. Now a MousePointer setting of 'mpDefault' is equivalent to 'mpArrow'.
- Improved IExplorerTreeView::SingleExpand/seWinXPStyle.
- Removed the data-binding stuff (it was probably broken anyway).
- Improved the documentation. Now properties are displayed as such.
- Switched to Visual C++ 2008 and dropped support for Windows 9x, Me and NT 4.0.
- Implemented the ShellBrowser interface.
- Decreased the binaries' size.
- Ported the WTL7 samples to Visual C++ 2008/WTL8.
- Removed the Outlook 2003 samples, because they had too many bugs I couldn't solve.
- Added Multi Column samples.
- Linked the new bug tracking system.
- Improved setup.
Version 2.0.0 (Beta 4) - 02/11/2005
- FIX: The control crashed when it tried to recreate its window.
- FIX: The behavior of the IExplorerTreeView::Enabled property was different from other controls.
- FIX: Auto-scrolling tried to scroll the control after the maximum scroll position was reached.
- FIX: Drag images for non-OLE-drag'n'drop didn't play well with auto-scrolling.
- FIX: Under certain circumstances, drag images contained the icons only.
- FIX: Drag images with 32bpp icons looked ugly.
- FIX: Drag images didn't contain overlay images.
- FIX: Drag image creation for multiple items could fail.
- Made IExplorerTreeView::OLEDrag() more robust.
- Added some C++/WTL samples.
- Improved Drag'n'Drop support.
- Improved documentation.
Version 2.0.0 (Beta 3) - 29/09/2005
- Converted the control into a single-window solution. This is easier to handle and needs less resources.
- Removed the _IExplorerTreeViewEvents::TreeViewGotFocus event.
- Removed the _IExplorerTreeViewEvents::TreeViewLostFocus event.
- Renamed the _IExplorerTreeViewEvents::CreatedEditControl event to _IExplorerTreeViewEvents::CreatedEditControlWindow.
- Renamed the _IExplorerTreeViewEvents::DestroyedEditControl event to _IExplorerTreeViewEvents::DestroyedEditControlWindow.
- Renamed the _IExplorerTreeViewEvents::DestroyedTreeViewControl event to _IExplorerTreeViewEvents::DestroyedControlWindow.
- Renamed the _IExplorerTreeViewEvents::RecreatedTreeViewControl event to _IExplorerTreeViewEvents::RecreatedControlWindow.
- Added the IExplorerTreeView::UseSystemFont property.
- Added the _IExplorerTreeViewEvents::ResizedControlWindow event.
- Added IExplorerTreeView::SaveSettingsToFile() and IExplorerTreeView::LoadSettingsFromFile(). These methods can be used to save/load a control's properties to/from a file.
- Shift-key multiselection is no longer preferred over Ctrl-key multiselection. Instead the control follows Visual Studio's project explorer and does it the other way around now.
- FIX: Setting the modifierKeys parameter of the IExplorerTreeView::CaretItem property to vbCtrlMask had the same effect as setting it to vbShiftMask.
- FIX: OLE drag images weren't working if the "Show window contents while dragging" feature was disabled.
- FIX: The Font property leaked GDI objects.
- Revised the Font property.
- Some minor bugfixes.
- Improved Unicode support.
- Simplified some internal parts of the control.
- Improved documentation.
- Improved code quality.
Version 2.0.0 (Beta 2) - 30/07/2005
- Rewrote the TreeViewItems collection class. It offers rich filter capabilities now.
- Removed the RequiredSelectionStateConstants enumeration.
- Rewrote parts of the drag'n'drop code. Drag images are supported much better now.
- FIX: The control leaked memory during OLE drag'n'drop.
- FIX: ITreeViewItemContainer::CreateDragImage() didn't work well with rtlLayout being set.
- FIX: In some cases the control didn't behave like a common treeview although IExplorerTreeView::MultiSelect was set to msNone.
- FIX: The label-edit control didn't handle rtlText correctly.
- FIX: If the EditContextMenu event was invoked using the keyboard, the proposed menu position was wrong.
- FIX: Sometimes the ItemMouseLeave event wasn't fired.
- FIX: OLE verbs didn't work.
- Many minor bugfixes.
- Made IExplorerTreeView::CaretItem the default property of IExplorerTreeView.
- The IExplorerTreeView::ProcessContextMenuKeys property affects the EditContextMenu event now, too.
- The native treeview control's host window has a pretty class name now.
- Improved item sorting performance.
- Improved the OptionTreeView sample.
- Improved documentation.
Version 2.0.0 (Beta 1) - 14/03/2005
- First public release.