You might be able to get your currentcode to work just by turning off the grid's default support which may be inerfereing with what you are trying to do. To turn it off, in the designer, uncheck the OleDataTarget flag under the ControllerOptions property.
Essential Grid has an extensible OLE D&D architecture that you can tie into if you want. You would not have to handle things like DragEnter, DrawOver, etc. Instead, you create your own dataobject that implements IGridDataObjectConsumer, and register this object with RegisterDataObjectConsumer that tells the grid to check for your dataobject in its OLE D&D.
Attached is a VB project that shows how you can create a dataobject to drag a row for a Windows Forms DataGrid to a GridControl. There are only 4 items you need to implement for the interface as you can see from the sample.
Here is another sample with a class added that implements IGridDataObjectConsumer to provide drop support for a treenode. This implemetation just automaticlly drops the node text as a new row to a GriddataBoundGrid.The steps are:
1) add the TreeNodeDataObjectConsumer class whcih implements IGridDataObjectConsumer to support dropping of TreeNode objects.
2) add a Form_Load to register a TreeNodeDataObjectConsumer object as a dataconsumer that the grid will poll as part of its D&D support.