VB6 offers two flavors of drag-and-drop features: the “classic” VB3-style drag-and-drop and the more modern OLE drag-and-drop. The former allows you to drag and drop items within a VB application only and is based on the DragMode property, Drag method, and DragOver and DragDrop events. The latter was introduced in VB5, allows to drag items from and to other Windows applications (including Windows Explorer), and is based on the OLEDragMode and OLEDropMode properties, the OLEDrag method, and the OLEStartDrag, OLESetData, OLEDragOver, OLEDragDrop, OLECompleteDrag, and OLEGiveFeedback events.
Both models support “automatic” and “manual” drag-and-drop: in automatic mode a control can start a drag-and-drop operation autonomously when the user drags the mouse over the control itself, whereas in manual mode the drag-and-drop operation begins when the developer invokes either the Drag or OLEDrag method.
VB.NET drag-and-drop programming model differs from both “classic” and OLE drag-and-drop model. In general, converting drag-and-drop code from VB6 to VB.NET isn’t a trivial task. In fact, the Upgrade Wizard tool doesn’t even attempt to convert drag-and-drop properties, methods, and event handlers.
VB Migration Partner manages to successfully convert both “classic” and OLE drag-and-drop code, in automatic and manual mode.