Das STARTUPINFO gibt der Anwendung ein optionales
Handle. (ist das leer, dann werden die Standrad-Handles des Systems verwendet)
Du schreibst in
WriteFile(PipeWrite, ...
und in der anderen Anwendung kommt es dann bei GetStdHandle(STD_INPUT_HANDLE) an, bzw. bei den Delphi-APIs, welche das nutzen, wie z.B. ReadLn (ohne den File-Parameter).
Andersum genauso, wenn die andere Anwendung auf STD_OUTPUT_HANDLE schreibt, bzw. mit WriteLn,
dann kommt es bei dir im PipeRead (STARTUPINFO.hStdOutput)