OLEDragDrop Event (ActiveX Controls)

       

Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.

Note   This event occurs only if OLEDropMode is set to 1 (Manual).

Syntax

Private Sub object_OLEDragDrop(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)

The OLEDragDrop event syntax has these parts:

Part Description
object An object expression that evaluates to an object in the Applies To list.
data A DataObject object containing formats that the source will provide and, in addition, possibly the data for those formats. If no data is contained in the DataObject, it is provided when the control calls the GetData method. The SetData and Clear methods cannot be used here.
effect A long integer set by the target component identifying the action that has been performed (if any), thus allowing the source to take appropriate action if the component was moved (such as the source deleting the data). The possible values are listed in Settings.
button An integer which acts as a bit field corresponding to the state of a mouse button when it is depressed. The left button is bit 0, the right button is bit 1, and the middle button is bit 2. These bits correspond to the values 1, 2, and 4, respectively. It indicates the state of the mouse buttons; some, all, or none of these three bits can be set, indicating that some, all, or none of the buttons are depressed.
shift An integer which acts as a bit field corresponding to the state of the shift, ctrl, and alt keys when they are depressed. The shift key is bit 0, the ctrl key is bit 1, and the alt key is bit 2. These bits correspond to the values 1, 2, and 4, respectively. The shift parameter indicates the state of these keys; some, all, or none of the bits can be set, indicating that some, all, or none of the keys are depressed. For example, if both the ctrl and alt keys were depressed, the value of shift would be 6.
x,y A number which specifies the current location of the mouse pointer. The x and y values are always expressed in terms of the coordinate system set by the ScaleHeight, ScaleWidth, ScaleLeft, and ScaleTop properties of the object.

Settings

The settings for effect are:

Constant Value Description
vbDropEffectNone 0 Drop target cannot accept the data.
vbDropEffectCopy 1 Drop results in a copy of data from the source to the target. The original data is unaltered by the drag operation.
vbDropEffectMove 2 Drop results in data being moved from drag source to drop source. The drag source should remove the data from itself after the move.
VbDropEffectScroll -2147483648 A mask to indicate that the drop target window has scrolled/would scroll.

Remarks

The source ActiveX component should always mask values from the effect parameter to ensure compatibility with future implementations of ActiveX components. Presently, only three of the 32 bits in the effect parameter are used. In future versions of Visual Basic, however, these other bits may be used. Therefore, as a precaution against future problems, drag sources and drop targets should mask these values appropriately before performing any comparisons.

For example, a source component should not compare an effect against, for example, vbDropEffectCopy, such as:

If Effect = vbDropEffectCopy... 

Instead, the source component should mask the value or values being sought, as here:

If Effect And vbDropEffectCopy = vbDropEffectCopy... 

-or-

If (Effect And vbDropEffectCopy)... 

This allows for the definition of new drop effects in future versions of Visual Basic while preserving backwards compatibility with your existing code.

Most components support manual OLE drag and drop events, and some support automatic OLE drag and drop events.