Escrevendo uma string para um TFileStream no Delphi 2010

Eu tenho o código Delphi 2007 que se parece com isso:

procedure WriteString(Stream: TFileStream; var SourceBuffer: PChar; s: string);
begin
  StrPCopy(SourceBuffer,s);
  Stream.Write(SourceBuffer[0], StrLen(SourceBuffer));
end;

Eu chamo assim:

var
  SourceBuffer : PChar;
  MyFile: TFileStream;

....

SourceBuffer := StrAlloc(1024);
MyFile := TFileStream.Create('MyFile.txt',fmCreate);
WriteString(MyFile,SourceBuffer,'Some Text');
....

Isso funcionou no Delphi 2007, mas isso me dá um monte de caracteres de lixo eletrônico no Delphi 2010. Eu sei que isso é devido a problemas de conformidade unicode, mas não sei como resolver o problema.

Aqui está o que eu tentei até agora:

Altere o tipo de dados de SourceBuffer (e também o parâmetro esperado por WideString) para PWideChar

Cada um dossugestões listadas aqui

O que estou fazendo de errado?

questionAnswers(2)

yourAnswerToTheQuestion