В данном случае ExtractFilePath неприменим, так как он выдаёт AnsiString (в Delphi 7 String = AnsiString) заменяя символы Unicode на вопросительные знаки, а путь должен быть WideString.
Или существует альтернативный способ работы с файлами, расположенными в том же каталоге, что и приложение? SetCurrentDir также работает с AnsiString.