![]() | Type | Description | ||
| Data as ExDataObject | An ExDataObject object containing formats that the source will provide and, in addition, possibly the data for those formats. If no data is contained in the ExDataObject, it is provided when the control calls the GetData method. The SetData and Clear methods cannot be used here. | |||
| Effect as Long | A Long 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 bellow. | |||
| Button as Integer | 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 as Integer | 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 as OLE_XPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The X value is always expressed in container coordinates | |||
| Y as OLE_YPOS_PIXELS | A single that specifies the current Y location of the mouse pointer. The Y value is always expressed in container coordinates |
The settings for Effect are:
The following VB sample inserts the names of the files being dragged at the cursor position:
Private Sub Edit1_OLEDragDrop(ByVal Data As EXEDITLibCtl.IExDataObject, Effect As Long, ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If (Data.GetFormat(exCFFiles)) Then
With Data.Files
Dim i As Long, s As String
s = ""
For i = 0 To .Count - 1
s = s + .Item(i) + vbCrLf
Next
Edit1.SelText = s
End With
End If
End Sub
The following C++ sample inserts the names of the files being dragged at the cursor position:
void OnOLEDragDropEdit1(LPDISPATCH Data, long FAR* Effect, short Button, short Shift, long X, long Y)
{
if ( EXEDITLib::IExDataObjectPtr spData( Data ) )
if ( spData->GetFormat( EXEDITLib::exCFFiles ) )
{
EXEDITLib::IExDataObjectFilesPtr spFiles = spData->Files;
if ( spFiles != NULL )
{
CString s;
for ( long i = 0; i < spFiles->Count; i++ )
s += spFiles->Item[i];
m_edit.SetSelText( s );
}
}
}
the sample needs to include definitions for IExDataObject and IExDataObjectFiles objects, by using the #import <exedit.dll> statement. The #import <exedit.dll> includes the EXEDITLib namespace where are defined all objects in the control's type library.
The following VB.NET sample inserts the names of the files being dragged at the cursor position:
Private Sub AxEdit1_OLEDragDrop(ByVal sender As Object, ByVal e As AxEXEDITLib._IEditEvents_OLEDragDropEvent) Handles AxEdit1.OLEDragDrop
If (e.data.GetFormat(EXEDITLib.exClipboardFormatEnum.exCFFiles)) Then
With e.data.Files
Dim i As Long, s As String = ""
For i = 0 To .Count - 1
s = s + .Item(i) + vbCrLf
Next
AxEdit1.SelText = s
End With
End If
End Sub
The following C# sample inserts the names of the files being dragged at the cursor position:
private void axEdit1_OLEDragDrop(object sender, AxEXEDITLib._IEditEvents_OLEDragDropEvent e)
{
if (e.data.GetFormat(Convert.ToInt16(EXEDITLib.exClipboardFormatEnum.exCFFiles)))
{
EXEDITLib.IExDataObjectFiles files = e.data.Files;
if (files != null)
{
string s = "";
for (int i = 0; i < files.Count; i++)
s += files[i] + "\r\n";
axEdit1.SelText = s;
}
}
}
The following VFP sample inserts the names of the files being dragged at the cursor position:
*** ActiveX Control Event *** LPARAMETERS data, effect, button, shift, x, y if ( data.GetFormat( 15 ) ) then local i, s s = "" with data.Files for i = 0 to .Count - 1 s = s + .Item(i) + chr(13) + chr(10) next thisform.Edit1.SelText = s endwith endif