# File lib/win32/file.rb, line 788 def compressed=(bool) in_buf = bool ? COMPRESSION_FORMAT_DEFAULT : COMPRESSION_FORMAT_NONE in_buf = [in_buf].pack('L') bytes = [0].pack('L') handle = CreateFile( self.path, FILE_READ_DATA | FILE_WRITE_DATA, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0 ) if handle == INVALID_HANDLE_VALUE raise ArgumentError, get_last_error end val = DeviceIoControl( handle, FSCTL_SET_COMPRESSION(), in_buf, in_buf.length, 0, 0, bytes, 0 ) if val == 0 raise ArgumentError, get_last_error end self end