lib/windows/file.rb in windows-pr-0.9.3 vs lib/windows/file.rb in windows-pr-0.9.4
- old
+ new
@@ -115,10 +115,11 @@
FILE_VOLUME_IS_COMPRESSED = 0x8000
FILE_SUPPORTS_OBJECT_IDS = 0x10000
FILE_SUPPORTS_ENCRYPTION = 0x20000
# File flags
+
FILE_FLAG_WRITE_THROUGH = 0x80000000
FILE_FLAG_OVERLAPPED = 0x40000000
FILE_FLAG_NO_BUFFERING = 0x20000000
FILE_FLAG_RANDOM_ACCESS = 0x10000000
FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000
@@ -128,10 +129,11 @@
FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000
FILE_FLAG_OPEN_NO_RECALL = 0x00100000
FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000
# File creation disposition
+
CREATE_NEW = 1
CREATE_ALWAYS = 2
OPEN_EXISTING = 3
OPEN_ALWAYS = 4
TRUNCATE_EXISTING = 5
@@ -149,24 +151,27 @@
SECTION_MAP_READ |
SECTION_MAP_EXECUTE |
SECTION_EXTEND_SIZE
# Errors
+
INVALID_FILE_ATTRIBUTES = -1
INVALID_HANDLE_VALUE = -1
INVALID_SET_FILE_POINTER = -1
INVALID_FILE_SIZE = 0xFFFFFFFF
# Misc
+
LOCKFILE_EXCLUSIVE_LOCK = 0x00000001
LOCKFILE_FAIL_IMMEDIATELY = 0x00000002
MOVEFILE_REPLACE_EXISTING = 0x00000001
MOVEFILE_COPY_ALLOWED = 0x00000002
MOVEFILE_DELAY_UNTIL_REBOOT = 0x00000004
MOVEFILE_WRITE_THROUGH = 0x00000008
MOVEFILE_CREATE_HARDLINK = 0x00000010
MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x00000020
+ SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1
API.new('CopyFile', 'PPI', 'B')
API.new('CopyFileEx', 'PPKPPL', 'B')
API.new('CreateFile', 'PLLPLLL', 'L')
API.new('CreateHardLink', 'PPP', 'B')
@@ -206,10 +211,18 @@
begin
API.new('Wow64DisableWow64FsRedirection', 'P', 'B')
API.new('Wow64EnableWow64FsRedirection', 'I', 'I')
API.new('Wow64RevertWow64FsRedirection', 'L', 'B')
rescue Windows::API::Error
- # Do nothing - not supported on current platform. It's up to you to
- # check for the existence of the constant in your code.
+ # Do nothing - unsupported on your system
+ end
+
+ # Windows Vista
+ begin
+ API.new('CreateSymbolicLink', 'PPL', 'B')
+ API.new('CreateSymbolicLinkTransacted', 'PPLL', 'B')
+ API.new('GetFinalPathNameByHandle', 'LPLL', 'L')
+ rescue
+ # Do nothing - unsupported on your system
end
end
end