How can I determine the original row (or column) after the user has dragged the row (column)?

At initialization time, you can loop through your columns and store an index in the column.

Example:

   for (ROWCOL nCol = 0; nCol < nColCount; nCol++)
      SetStyleRange(CGXRange().SetCols(nCol), CGXStyle().SetItemDataPtr((void*) nRow));

Later, you can call ComposeStyleRowCol to determine the value after columns have been rearranged.

NOTE: This sounds similar to the previous question but if you look close you will that it is exactly the other way round.