TPath.GetTempPath selber ist threadsave, aber wie es mit
GetTempPath und
GetLongPathName aussieht, kann ich nicht sagen.
Aber warum kommt keiner auf die Idee diesen Wert in einer globalen Veriable zwischenzuspeichern
oder kann es denn passieren, daß sich dieser Wert jemals ändern wird?
Und was sind das für Threads und wie behandelst du die Exceptions darin?
PS:
Warum ist fName ein VAR-Parameter?
Und Result=False wird es niemals geben.