Windows?
ChangeFileExt ist 'ne reine Delphi-Funktion.
Und nein, ChangeFileExt, ExtractFileExt und Co. suchen jeweils den letzen Punkt im String.
Alles ab/nach diesem Punkt ist immer die Dateieindung.
Ob und was vor dem Punkt ist, ist vollkommen egal.