@@ -262,6 +262,51 @@ package GNATCOLL.OS.Win32.Files is
262262 Convention => Stdcall,
263263 External_Name => " NtQueryDirectoryFile" ;
264264
265+ subtype ACCESS_MODE is DWORD;
266+
267+ GENERIC_READ : constant ACCESS_MODE := 16#8000_0000# ;
268+ GENERIC_WRITE : constant ACCESS_MODE := 16#4000_0000# ;
269+ GENERIC_EXECUTE : constant ACCESS_MODE := 16#2000_0000# ;
270+ GENERIC_ALL : constant ACCESS_MODE := 16#1000_0000# ;
271+
272+ subtype CF_SHARE_MODE is DWORD;
273+
274+ -- Note: FILE_SHARE_NONE does not exist, only the value 0 is given
275+ -- in the CreateFile documentation.
276+ CF_FILE_SHARE_NONE : constant CF_SHARE_MODE := 16#0000_0000# ;
277+ CF_FILE_SHARE_DELETE : constant CF_SHARE_MODE := 16#0000_0004# ;
278+ CF_FILE_SHARE_READ : constant CF_SHARE_MODE := 16#0000_0001# ;
279+ CF_FILE_SHARE_WRITE : constant CF_SHARE_MODE := 16#0000_0002# ;
280+
281+ subtype CF_CREATION_DISPOSITION is DWORD;
282+
283+ CF_CREATE_ALWAYS : constant CF_CREATION_DISPOSITION := 16#0000_0002# ;
284+ CF_CREATE_NEW : constant CF_CREATION_DISPOSITION := 16#0000_0001# ;
285+ CF_OPEN_ALWAYS : constant CF_CREATION_DISPOSITION := 16#0000_0004# ;
286+ CF_OPEN_EXISTING : constant CF_CREATION_DISPOSITION := 16#0000_0003# ;
287+ CF_TRUNCATE_EXISTING : constant CF_CREATION_DISPOSITION := 16#0000_0005# ;
288+
289+ subtype CF_FILE_ATTRIBUTE is DWORD;
290+
291+ CF_FILE_ATTRIBUTE_ARCHIVE : constant CF_FILE_ATTRIBUTE := 16#0000_0020# ;
292+ CF_FILE_ATTRIBUTE_ENCRYPTED : constant CF_FILE_ATTRIBUTE := 16#0000_4000# ;
293+ CF_FILE_ATTRIBUTE_HIDDEN : constant CF_FILE_ATTRIBUTE := 16#0000_0002# ;
294+ CF_FILE_ATTRIBUTE_NORMAL : constant CF_FILE_ATTRIBUTE := 16#0000_0080# ;
295+ CF_FILE_ATTRIBUTE_OFFLINE : constant CF_FILE_ATTRIBUTE := 16#0000_1000# ;
296+ CF_FILE_ATTRIBUTE_READONLY : constant CF_FILE_ATTRIBUTE := 16#0000_0001# ;
297+ CF_FILE_ATTRIBUTE_SYSTEM : constant CF_FILE_ATTRIBUTE := 16#0000_0004# ;
298+ CF_FILE_ATTRIBUTE_TEMPORARY : constant CF_FILE_ATTRIBUTE := 16#0000_0100# ;
299+ CF_FILE_FLAG_BACKUP_SEMANTICS : constant CF_FILE_ATTRIBUTE := 16#0200_0000# ;
300+
301+ function CreateFile
302+ (Filename : OS.C_WString; DesiredAccess : ACCESS_MODE;
303+ ShareMode : CF_SHARE_MODE;
304+ SecurityAttributes : LPSECURITY_ATTRIBUTES := null ;
305+ CreationDisposition : CF_CREATION_DISPOSITION;
306+ FlagsAndAttributes : CF_FILE_ATTRIBUTE;
307+ TemplateFile : HANDLE := NULL_HANDLE) return HANDLE with
308+ Import => True, Convention => Stdcall, External_Name => " CreateFileW" ;
309+
265310 function Open
266311 (Filename : C_WString;
267312 Flags : Open_Mode;
0 commit comments