DWScript を使用して、FileCreate 関数の戻り値を確認する明確な方法がわかりません。
例 (動作しない) スクリプト:
function TestFileCreate : Boolean;
var
F : File;
begin
F := FileCreate('MyTestFile.txt');
Result := (F = -1); // Not working!
Result := (F.Handle = -1); // Not working!
end;
DWScript ソース コードからの抜粋:
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;
ご覧のとおり、内部的に Delphi CreateFile が呼び出され、失敗すると結果の値は -1 になります。この数値は IdwsFileHandle に変換されます。