Altova XMLSpy 2024 Enterprise Edition

Event: OnBeforeDrop (i_nXPos as Long, i_nYPos as Long, i_ipRange as AuthenticRange, i_ipData as cancelBoolean


Scripting environment - VBScript:

Function On_AuthenticBeforeDrop(nXPos, nYPos, objRange, objData)

 ' On_AuthenticBeforeDrop = False  ' to disable operation

End Function


Scripting environment - JScript:

function On_AuthenticBeforeDrop(nXPos, nYPos, objRange, objData)


 // return false;  /* to disable operation */



IDE Plugin:

IXMLSpyPlugIn.OnEvent (11, ...)        // nEventId = 11



This event gets triggered whenever a previously dragged object gets dropped inside the application window. All event related information gets passed as parameters.


The first two parameters specify the mouse position at the time when the event occurred. The parameter objRange passes a range object that selects the XML element below the mouse position. The value of this parameter might be NULL. Be sure to check before you access the range object. The parameter objData allows to access information about the object being dragged.


Return False to cancel the drop operation. Return True (or nothing) to continue normal operation.



' ----------------------------------------------------------------------------

' VB code snippet - connecting to object level events

' ----------------------------------------------------------------------------

' access XMLSpy (without checking for any errors)

Dim objSpy As XMLSpyLib.Application

Set objSpy = GetObject("", "XMLSpy.Application")


' this is the event callback routine connected to the OnBeforeDrop

' event of object objView

Private Function objView_OnBeforeDrop(ByVal i_nXPos As Long, ByVal i_nYPos As Long,

                                     ByVal i_ipRange As IAuthenticRange,

                                     ByVal i_ipData As IAuthenticDataTransfer) As Boolean


   If (Not i_ipRange Is Nothing) Then

       MsgBox ("Dropping on content is prohibited");

       Return False;


       Return True;

   End If

End Function


' use VBA keyword WithEvents to connect to object-level event

Dim WithEvents objView As XMLSpyLib.AuthenticView

Set objView = objSpy.ActiveDocument.AuthenticView


' continue here with something useful ...

' and serve the windows message loop

© 2018-2024 Altova GmbH