I missing checking if file already exists, like

Code:
if FileExists(Result) then Result := GetTemporaryFileName()
and maybe it was useful to add a suffix as optional parameter to function.

Thomas