Statische Variablen gibt es in Delphi nicht, meint ihr Literale oder was meint ihr?
An dieser Stelle solltest du definitiv einen String mit deinen Daten vorbelegen (wie oben gesehen) und dann den String bei pFrom und pTo in folgender Form zuweisen.
Delphi-Quellcode:
with shellinfo do
begin
Wnd := 0;
wFunc := FO_COPY;
pFrom := @DirFrom[1];
pTo := @DirTo[1];
fFlags := FOF_SIMPLEPROGRESS or
FOF_NOCONFIRMATION;
.
.
Ansonsten werde ich mal kurz drüberschauen.
Nachtrag:
Was soll das denn?
Delphi-Quellcode:
FillChar(FromBuf, Sizeof(FromBuf), 0 );
FillChar(ToBuf, Sizeof(ToBuf), 0 );
Bei integralen Datentypen weist man immer Werte zu, wozu nullst du denn einen Pointer aus? Oder was ist FromBuf und ToBuf? Wenn es Strings sind, ist es komplett falsch.