Hide

SftDirectory 3.5 - ActiveX File/Folder Control

Display
Print

SftDirectory.OLEDrag Method

Initiates an OLE drag & drop operation.

Syntax

VB.NETobject.OLEDrag(ByVal UseFolderData As Boolean, ByVal UseDragPicture As Boolean, ByVal xOffset As Single, ByVal yOffset As Single)
VBobject.OLEDrag(ByVal UseFolderData As Boolean, ByVal UseDragPicture As Boolean, ByVal xOffset As Single, ByVal yOffset As Single)
C#.NETvoid object.OLEDrag(bool UseFolderData, bool UseDragPicture, float xOffset, float yOffset);
VC++HRESULT object->OLEDrag(VARIANT_BOOL UseFolderData, VARIANT_BOOL UseDragPicture, float xOffset, float yOffset);
CHRESULT object->raw_OLEDrag(VARIANT_BOOL UseFolderData, VARIANT_BOOL UseDragPicture, float xOffset, float yOffset);

object

A SftDirectory object.

UseFolderData

Defines whether folders are about to be dragged. Set to True to drag the selected folders using the Windows Shell drag & drop mechanisms. Set to False to allow an application to drag application specific data provided using the DataObject object methods and properties.

UseDragPicture

Defines whether a semi-transparent image of the folders is used to represent the data being dragged. Set to True to use a semi-transparent image or set to False to use an application provided cursor.

xOffset

If a semi-transparent image is used (see UseDragPicture), xOffset defines the offset of the image's hotspot relative to the top, left corner of the image. This should be set to -1 to allow the control to determine the best offset. The units used depend on the container (Visual Basic, Visual C++, etc.) and the coordinate system used.

yOffset

If a semi-transparent image is used (see UseDragPicture), yOffset defines the offset of the image's hotspot relative to the top, left corner of the image. This should be set to -1 to allow the control to determine the best offset. The units used depend on the container (Visual Basic, Visual C++, etc.) and the coordinate system used.

Comments

The OLEDrag method initiates an OLE drag & drop operation.

OLE Drag & Drop is not supported with combo box style controls (see ControlStyle property).

An application can invoke an OLE drag & drop operation explicitly using the OLEDrag method.

When the OLEDrag method is called, the OLEStartDrag event occurs, allowing the application to supply data to a target component.

If the OLEDragMode property is set to OLEDragSftControlAutomatic, the OLEDrag method is automatically invoked when an OLE drag & drop operation is started by the user.

The OLEDragPix method can be used to provide xOffset and yOffset coordinates in pixels.

Examples

VB.NET

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    AxSftDirectory1.OLEDragMode = SftControlOLEDragModeConstants.OLEDragSftControlManual
End Sub

Private Sub AxSftDirectory1_DragStarting(ByVal sender As Object, ByVal e As AxSftDirectoryLib30._ISftDirectoryEvents_DragStartingEvent) Handles AxSftDirectory1.DragStarting
    Dim F As SftDirectoryFolder
    F = AxSftDirectory1.CurrentFolder
    If Not F Is Nothing Then
        AxSftDirectory1.OLEDrag(False, True, -1, -1)
    End If
End Sub

Private Sub AxSftDirectory1_OLEStartDrag(ByVal sender As Object, ByVal e As AxSftDirectoryLib30._ISftDirectoryEvents_OLEStartDragEvent) Handles AxSftDirectory1.OLEStartDrag
    e.data.Clear()
    e.data.SetData(Nothing, SftOLEClipboardConstants.sftCFText)
    e.allowedEffects = 1 'vbDropEffectCopy

VB6

    SftDirectory1.OLEDragMode = OLEDragSftControlManual
End Sub

Private Sub SftDirectory1_DragStarting(ByVal Button As Integer, ByVal Shift As Integer, _
        ByVal xPos As Single, ByVal yPos As Single)
    Dim F As SftDirectoryFolder
    Set F = SftDirectory1.CurrentFolder
    If Not F Is Nothing Then
        SftDirectory1.OLEDrag False, True, -1, -1
    End If
End Sub

Private Sub SftDirectory1_OLEStartDrag(Data As SftDirectoryLib30.DataObject, _
        AllowedEffects As Long)
    Data.Clear
    Data.SetData , sftCFText

C#

    axSftDirectory1.OLEDragMode = SftControlOLEDragModeConstants.OLEDragSftControlManual;
}

private void axSftDirectory1_DragStarting(object sender, AxSftDirectoryLib30._ISftDirectoryEvents_DragStartingEvent e)
{
    SftDirectoryFolder f;
    f = axSftDirectory1.CurrentFolder;
    if (f != null) {
        axSftDirectory1.OLEDrag(false, true, -1, -1);
    }
}

private void axSftDirectory1_OLEStartDrag(object sender, AxSftDirectoryLib30._ISftDirectoryEvents_OLEStartDragEvent e)
{
    e.data.Clear();
    e.data.SetData(null, SftOLEClipboardConstants.sftCFText);

C++

}

void COLEDragDlg::OnDragStartingSftDirectory1(short Button, short Shift, long xPos, long yPos)
{
    ISftDirectoryFolderPtr pFolder;

    pFolder = m_vDir1->CurrentFolder;
    if (pFolder)
        m_vDir1->OLEDrag(VARIANT_FALSE, VARIANT_TRUE, -1, -1);
}

void COLEDragDlg::OnOLEStartDragSftDirectory1(LPDISPATCH FAR* Data, long FAR* AllowedEffects)
{
    IVDMDataObjectPtr pData(*Data);

    pData->Clear();

See Also SftDirectory Object | Object Hierarchy


Last Updated 08/13/2020 - (email)
© 2024 Softel vdm, Inc.