Naja, es sind alle anscheinend als AnsiString und PAnsiChar deklariert. Das merkwürdige ist, dass es anscheinend bei allen anderen funktioniert hat, und bei mir das erste mal der Fehler aufgetreten ist. Verändert habe ich an dem Beispiel nichts.
Code:
function DoCopy(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString;
Flags: FILEOP_FLAGS): Integer;
var
FromPath, ToPath: AnsiString;
SHFileOpStruct: TSHFileOpStruct;
begin
FromPath := aFrom + #0#0;
ToPath := aTo + #0#0;
with SHFileOpStruct do
begin
Wnd := 0;
wFunc := aOperation;
pFrom := PAnsiChar(FromPath);
if ToPath <> '' then
begin
pTo := PAnsiChar(ToPath)
end else begin // target available
pTo := nil;
end; // target not available
fFlags := Flags;
end; // structure
Result := SHFileOperationA(SHFileOpStruct);
end;