Da fehlt eine Zeichenkonvertierung zwischen dem Lesen aus der pipe und dem Wegschreiben in den memory stream - etwa so:
Delphi-Quellcode:
// ...
while true do begin
succeed := ReadFile(PipeOutputRead, Buffer, 255, NumberOfBytesRead, nil);
if not succeed then break;
OemToCharBuff(Buffer, Buffer, NumberOfBytesRead);
Stream.Write(Buffer, NumberOfBytesRead);
end;
// ...
Grüße vom marabu