This is done in a two step process. First the coordinates are converted from the target datum center to an arbitrary geocentric Euclidean space, and from there it's converted to the source datum center.
public void InvDatumShift(
ref double x,
ref double y,
ref double z
)member InvDatumShift :
x : float byref *
y : float byref *
z : float byref -> unit