Have a look at this function in the OBJLib that can be found on Github:
Function OBJCartesianCreatePointAlong
( ByVal oPolyline As Object 'The polyline to create the point along
, ByVal fDistance As Float 'Distance along polyline, can also be negative
, ByVal fOffset As Float 'Offset from polyline, negative is left, positive is right
) As Object
It doesn't give you the mid point directly but can be used to do it if you pass in the value of the distance parameter as half the object length:
oMidPoint = OBJCartesianCreatePointAlong(oSel, CartesianObjectLen(oSel) / 2, 0)
You can find it here on Github: https://github.com/PeterHorsbollMoller/mbLibrary.
Look for the OBJLib.def and OBJLib.mb files.
Note that it only supports lines and single segment polylines.