Airphoto does it all for you - convert everything to UTM and back and forth. The only problem is that it uses some wierd data-type structure, 13 bits or something as I recall, and when I passed the variable reference to the dll, it remained unchanged.
But it does do the trick, apparently. Delphi calls it nicely, apparently, so does Fortran ...
RG