method ExDataObject.SetData ([Value as Variant], [Format as Variant])

Inserts data into a ExDataObject object using the specified data format.

TypeDescription
Value as Variant A data being inserted to the ExDataObject object.
Format as Variant A constant or value that specifies the data format, as described in exClipboardFormatEnum enum.

Use SetData property to insert data for OLE drag and drop operations. Use the Files property is you are going to add new files to the clipboard data. You can use the RegisterClipboardFormat API  function to register a new clipboard format. This format can then be used as a valid clipboard format. The control fires the OLEStartDrag event to notify your application that the user stars dragging files. The OLEDragDrop event notifies your application that the user drags some data on the control. Use the Get property to retrieve the selected items. Use the FullName property to retrieve the full name of the file. Use the SingleSel property to allow multiple selection in the control.

The following VB sample starts dragging the selected files: 

Private Sub ExFileView1_OLEStartDrag(ByVal Data As ExDataObject, AllowedEffects As Long)
    Data.Files.Clear
    With ExFileView1.Get(SelItems)
        Dim i As Long
        For i = 0 To .Count - 1
         Data.Files.Add .Item(i).FullName
        Next
    End With
    If (Data.Files.Count > 0) Then
        AllowedEffects = 1
        Data.SetData , exCFFiles
    End If
End Sub

The following C++ sample starts dragging the selected files: 

#import <exfilevw.dll>
void OnOLEStartDragExfileview1(LPDISPATCH Data, long FAR* AllowedEffects) 
{
	EXFILEVIEWLib::IExDataObjectPtr spData( Data );
	spData->Clear();
	CFiles files = m_fileview.GetGet( 0 /*SelItems*/ );
	for ( long i = 0; i < files.GetCount(); i++ )
		spData->Files->Add( files.GetItem( COleVariant( i ) ).GetFullName().operator LPCTSTR() );
	if ( spData->Files->Count > 0 )
	{
		*AllowedEffects = 1; /*exOLEDropEffectCopy*/
		spData->SetData( vtMissing, COleVariant( long(15) ) ); /*exCFFiles*/
	}
}

The C++ requires #import <exfilevw.dll> to import definitions for ExDataObject and ExDataObjectFiles objects. The #import <exfilevw.dll> generates the EXFILEVIEWLib namespace. If the exfilevw.dll file is located in other directory than system folder, the correct path should be provided, else a compiler error occurs.

The following VB.NET sample starts dragging the selected files:

Private Sub AxExFileView1_OLEStartDrag(ByVal sender As Object, ByVal e As AxEXFILEVIEWLib._IExFileViewEvents_OLEStartDragEvent) Handles AxExFileView1.OLEStartDrag
    e.data.Files.Clear()
    With AxExFileView1.get_Get(EXFILEVIEWLib.TypeEnum.SelItems)
        Dim i As Integer
        For i = 0 To .Count - 1
            e.data.Files.Add(.Item(i).FullName())
        Next
    End With
    If (e.data.Files.Count > 0) Then
        e.allowedEffects = 1
        e.data.SetData(, EXFILEVIEWLib.exClipboardFormatEnum.exCFFiles)
    End If
End Sub

The following C# sample starts dragging the selected files:

private void axExFileView1_OLEStartDrag(object sender, AxEXFILEVIEWLib._IExFileViewEvents_OLEStartDragEvent e)
{
	e.data.Files.Clear();
	EXFILEVIEWLib.Files files = axExFileView1.get_Get(EXFILEVIEWLib.TypeEnum.SelItems);
	for ( int i = 0 ; i < files.Count; i++ )
		e.data.Files.Add(files[i].FullName);
	if (e.data.Files.Count > 0)
	{
		e.allowedEffects = 1;
		e.data.SetData(null, EXFILEVIEWLib.exClipboardFormatEnum.exCFFiles);
	}
}

The following VFP sample starts dragging the selected files:

*** ActiveX Control Event ***
LPARAMETERS data, allowedeffects

Data.Files.Clear
With thisform.ExFileView1.Get(0) && SelItems
    local i
    For i = 0 To .Count - 1
     data.Files.Add(.Item(i).FullName)
    Next
EndWith
If (Data.Files.Count > 0) Then
    AllowedEffects = 1
    data.SetData( , 15) && exCFFiles
EndIf