Unicode problèmes avec Delphi 2009 / 2010 et les appels d'API de windows

Salut j'ai été en utilisant cette fonction en Delphi 2006, mais maintenant, avec D2010 il renvoie une erreur.
Je pense que c'est lié à l'interrupteur de l'Unicode.

  Function TWinUtils.GetTempFile(Const Extension: STRING): STRING;
  Var
     Buffer: ARRAY [0 .. MAX_PATH] OF char;
  Begin
    Repeat
      GetTempPath(SizeOf(Buffer) - 1, Buffer);
      GetTempFileName(Buffer, '~~', 0, Buffer);
      Result := ChangeFileExt(Buffer, Extension);
    Until not FileExists(Result);
  End;

Que dois-je faire pour le faire fonctionner?

MODIFIER

- Je obtenir une "violation d'accès" lorsque le ChangeFileExt est appelé

  • vous devez éditer votre question pour inclure le message d'erreur (une bonne habitude - logique, non?)
  • Veuillez consulter le lien suivant pour une discussion du problème (presque le même code) et une meilleure version qui prend en compte un peu plus de ce que la documentation de l'API dit concernant la taille maximale de mémoire tampon. forums.embarcadero.com/thread.jspa?threadID=18246