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