diff options
| author | Ginger Bill <bill@gingerbill.org> | 2016-12-30 15:45:10 +0000 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2016-12-30 15:45:10 +0000 |
| commit | 23d32f34e526cfb657a72e5b2dab86d1df765f0f (patch) | |
| tree | 7998bcf40ca9f581be6296bf4f68c102a5d234c8 /core/sys | |
| parent | d714bece47ea058e482389452cd428dad9c28fd0 (diff) | |
Block Expressions and `give`
Diffstat (limited to 'core/sys')
| -rw-r--r-- | core/sys/windows.odin | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/core/sys/windows.odin b/core/sys/windows.odin index 90f8bd424..3e22e1c40 100644 --- a/core/sys/windows.odin +++ b/core/sys/windows.odin @@ -23,6 +23,9 @@ type { const { INVALID_HANDLE_VALUE = (-1 as int) as HANDLE; + FALSE BOOL = 0; + TRUE BOOL = 1; + CS_VREDRAW = 0x0001; CS_HREDRAW = 0x0002; CS_OWNDC = 0x0020; @@ -88,7 +91,7 @@ type { } FILETIME struct #ordered { - low_date_time, high_date_time u32; + lo, hi u32; } BY_HANDLE_FILE_INFORMATION struct #ordered { @@ -104,7 +107,7 @@ type { file_index_low u32; } - WIN32_FILE_ATTRIBUTE_DATA struct #ordered { + FILE_ATTRIBUTE_DATA struct #ordered { file_attributes u32; creation_time, last_access_time, @@ -174,8 +177,8 @@ proc GetCurrentThreadId() -> u32 #foreign #dll_import proc CloseHandle (h HANDLE) -> i32 #foreign #dll_import proc GetStdHandle(h i32) -> HANDLE #foreign #dll_import proc CreateFileA (filename ^u8, desired_access, share_mode u32, - security rawptr, - creation, flags_and_attribs u32, template_file HANDLE) -> HANDLE #foreign #dll_import + security rawptr, + creation, flags_and_attribs u32, template_file HANDLE) -> HANDLE #foreign #dll_import proc ReadFile (h HANDLE, buf rawptr, to_read u32, bytes_read ^i32, overlapped rawptr) -> BOOL #foreign #dll_import proc WriteFile (h HANDLE, buf rawptr, len i32, written_result ^i32, overlapped rawptr) -> i32 #foreign #dll_import @@ -183,6 +186,23 @@ proc GetFileSizeEx (file_handle HANDLE, file_size ^i64) -> BOOL #for proc GetFileAttributesExA (filename ^u8, info_level_id GET_FILEEX_INFO_LEVELS, file_info rawptr) -> BOOL #foreign #dll_import proc GetFileInformationByHandle(file_handle HANDLE, file_info ^BY_HANDLE_FILE_INFORMATION) -> BOOL #foreign #dll_import +proc GetFileType(file_handle HANDLE) -> u32 #foreign #dll_import +proc SetFilePointer(file_handle HANDLE, distance_to_move i32, distance_to_move_high ^i32, move_method u32) -> u32 #foreign #dll_import + +proc SetHandleInformation(obj HANDLE, mask, flags u32) -> BOOL #foreign #dll_import + +const { + HANDLE_FLAG_INHERIT = 1; + HANDLE_FLAG_PROTECT_FROM_CLOSE = 2; +} + + +const { + FILE_BEGIN = 0; + FILE_CURRENT = 1; + FILE_END = 2; +} + const { FILE_SHARE_READ = 0x00000001; FILE_SHARE_WRITE = 0x00000002; @@ -192,6 +212,8 @@ const { FILE_GENERIC_WRITE = 0x40000000; FILE_GENERIC_READ = 0x80000000; + FILE_APPEND_DATA = 0x0004; + STD_INPUT_HANDLE = -10; STD_OUTPUT_HANDLE = -11; STD_ERROR_HANDLE = -12; @@ -201,6 +223,27 @@ const { OPEN_EXISTING = 3; OPEN_ALWAYS = 4; TRUNCATE_EXISTING = 5; + + FILE_ATTRIBUTE_READONLY = 0x00000001; + FILE_ATTRIBUTE_HIDDEN = 0x00000002; + FILE_ATTRIBUTE_SYSTEM = 0x00000004; + FILE_ATTRIBUTE_DIRECTORY = 0x00000010; + FILE_ATTRIBUTE_ARCHIVE = 0x00000020; + FILE_ATTRIBUTE_DEVICE = 0x00000040; + FILE_ATTRIBUTE_NORMAL = 0x00000080; + FILE_ATTRIBUTE_TEMPORARY = 0x00000100; + FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200; + FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400; + FILE_ATTRIBUTE_COMPRESSED = 0x00000800; + FILE_ATTRIBUTE_OFFLINE = 0x00001000; + FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000; + FILE_ATTRIBUTE_ENCRYPTED = 0x00004000; + + FILE_TYPE_DISK = 0x0001; + FILE_TYPE_CHAR = 0x0002; + FILE_TYPE_PIPE = 0x0003; + + INVALID_SET_FILE_POINTER = ~(0 as u32); } |