OLE Drag & Drop
SftMask/OCX supports OLE drag & drop, based on the OLEDragMode and OLEDropMode settings.
The DragStarting event can be used to determine the start of a drag & drop operation. The user can drag the selected (highlighted) text by pressing the left mouse button while over the selected text and dragging it.
If the Masked Edit control is defined as a valid drop target (see OLEDropMode), the current drop target location is displayed using a vertical insertion bar.
OLE Drag & Drop
If the OLEDragMode property is set to OLEDragSftMaskManual or OLEDragSftMaskAutomatic, OLE drag & drop mechanisms are used. This is the most powerful drag & drop method supported by SftMask/OCX. In this mode, drag & drop between controls in the same application and between different applications is supported.
Using the OLEDropMode property, SftMask/OCX can be defined as a valid drop target. The OLEDragDrop event occurs when a drop occurs on the control. The application can retrieve the data and data format using the DataObject.GetData and GetFormat methods.
SftMask/OCX can also be used as the source of a drag & drop operation. By using the OLEDragMode property (set to OLEDragSftMaskManual or OLEDragSftMaskAutomatic), the OLEStartDrag event occurs as soon as a drag & drop operation is about to begin (either automatically or using the OLEDrag method when the DragStarting event occurs).
The DragMode property (in Visual Basic) must be set to vbManual for OLE drag & drop.
In the OLEStartDrag event, the application can define the data or data formats and drop effects that are supported for the drag & drop operation.
Drag & Drop Controlled by the Container Application
Visual Basic also supports its own drag & drop which is not based on OLE. Visual Basic's drag & drop methods only operate within the same application. The DragMode property (added to the control and documented by Visual Basic) controls this drag & drop processing. Please see the Visual Basic documentation for more information.
Other container applications may provide their own drag & drop implementation. For example, Visual C++ offers the C++ classes COleDropSource and COleDropTarget, which offer considerable features to implement OLE Drag & Drop. The DragStarting event could be used to determine when a drag & drop operation starts, but the application can then choose to use the COleDropSource and COleDropTarget classes to implement its own OLE drag & drop mechanisms.