Using DWScript, I don't see obvious way of checking the return value of the FileCreate function.
Example (not working) script:
function TestFileCreate : Boolean;
var
F : File;
begin
F := FileCreate('MyTestFile.txt');
Result := (F = -1); // Not working!
Result := (F.Handle = -1); // Not working!
end;
Extract from DWScript source code:
procedure TFileCreateFunc.DoEvalAsVariant(const args : TExprBaseListExec; var result : Variant);
var
h : THandle;
i : IdwsFileHandle;
begin
h:=FileCreate(args.AsFileName[0]);
i:=TdwsFileHandle.Create(h);
Result:=IUnknown(i);
end;
As you can see, internally, Delphi CreateFile is called and the result value is -1 when it fails. This numeric value is converted to a IdwsFileHandle.