why not checking the result of FileCreateW(FileName) ?
Right!
Constructor will be:
constructor TFileStreamW.Create(const FileName: WideString; Mode: Word);
var
Handle: Integer;
begin
if Mode = fmCreate then
begin
Handle := FileCreateW(FileName);
if Handle < 0 then
raise EFCreateError.CreateResFmt(@SFCreateError, [FileName]);
end
else
begin
Handle := FileOpenW(FileName, Mode);
if Handle < 0 then
raise EFOpenError.CreateResFmt(@SFOpenError, [FileName]);
end;
inherited Create(Handle);
end;