# AG\_DRAGDROP > [HTML Version](ag_dragdrop.htm) _Reviewed and revised December 2023_ **tab(-10, AG\_DRAGDROP); opcode, ctlid \{,fidx\}; chr(127);** [Tab(-10,x) Syntax Notes](ag_xxx_syntax-notes.htm.md) AG\_DRAGDROP (112) implements both destructive and non-destructive drag-drop modes. This function has both a [subroutine and a print tab implementation](subroutine-print-pairs.htm.md). **Parameters** _opcode_ | **Value** | **Description** | |------|------| | 0 | query drop buffer, set _status_ parameter to the number of files in the drop target (_ctlid_) | | 1 | retrieve _fspec_ corresponding to _fidx_ from the specified drop target (_ctlid_) | | 2 | clear the contents of the drop target buffer | | 3 | set non-destructive (previous "asynchronous") mode | _ctlid_ _control ID of the target control_ **Response** _status, fspec_ CR _status_ values: <=0 indicates failure, or no files available in opcode 0; >0 indicates success (number of files for _opcode_ 0 or the number of bytes in _fspec_ for _opcode_ 1) _fspec_ is the file specification in opcode 1 See [MX\_DRAGDROP](mx_dragdrop.htm.md)[xs](keyword-types.htm.md) for additional details and parameters.