diff options
author | Brad King <brad.king@kitware.com> | 2012-01-11 08:15:25 -0500 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-01-11 08:15:25 -0500 |
commit | 6989e4384028a438906546d82a0868fc709e92b7 (patch) | |
tree | 3be7fbe47a6eb3ccb16ad3b043bcc6ea84dc2b9a /libarchive/archive_windows.h | |
parent | 0889d99f1131199a293bcd0be0206982ee3a8a54 (diff) | |
download | libarchive-6989e4384028a438906546d82a0868fc709e92b7.tar.gz |
Fix Windows NT API usage in VS 6
VS 6 warns verbosely when WINVER >= 0x0500. Avoid defining WINVER and
_WIN32_WINNT to higher than 0x0400 on VS 6. Provide missing API
declarations in archive_windows.h when we do not get them from
<windows.h>. Provide GetVolumePathNameW because VS 6 does not declare
it regardless of the API version.
SVN-Revision: 4129
Diffstat (limited to 'libarchive/archive_windows.h')
-rw-r--r-- | libarchive/archive_windows.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/libarchive/archive_windows.h b/libarchive/archive_windows.h index 033d620d..31288c12 100644 --- a/libarchive/archive_windows.h +++ b/libarchive/archive_windows.h @@ -275,4 +275,22 @@ typedef int mbstate_t; size_t wcrtomb(char *, wchar_t, mbstate_t *); #endif +#if defined(_MSC_VER) && _MSC_VER < 1300 +WINBASEAPI BOOL WINAPI GetVolumePathNameW( + LPCWSTR lpszFileName, + LPWSTR lpszVolumePathName, + DWORD cchBufferLength + ); +# if _WIN32_WINNT < 0x0500 /* windows.h not providing 0x500 API */ +typedef struct _FILE_ALLOCATED_RANGE_BUFFER { + LARGE_INTEGER FileOffset; + LARGE_INTEGER Length; +} FILE_ALLOCATED_RANGE_BUFFER, *PFILE_ALLOCATED_RANGE_BUFFER; +# define FSCTL_SET_SPARSE \ + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_WRITE_DATA) +# define FSCTL_QUERY_ALLOCATED_RANGES \ + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA) +# endif +#endif + #endif /* LIBARCHIVE_ARCHIVE_WINDOWS_H_INCLUDED */ |