summaryrefslogtreecommitdiffstats
path: root/Utilities/cmlibarchive/libarchive/archive_windows.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2011-12-22 19:01:34 (GMT)
committerBrad King <brad.king@kitware.com>2011-12-23 21:04:58 (GMT)
commite2dc5561bbb440d2563c438261571e11e12c8c22 (patch)
tree6589ce41d2b0601fe8d28f26377d039d5695d920 /Utilities/cmlibarchive/libarchive/archive_windows.h
parent297d9f20326ac87d637189df1ba3bf3b7db4d0b1 (diff)
downloadCMake-e2dc5561bbb440d2563c438261571e11e12c8c22.zip
CMake-e2dc5561bbb440d2563c438261571e11e12c8c22.tar.gz
CMake-e2dc5561bbb440d2563c438261571e11e12c8c22.tar.bz2
libarchive: 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.
Diffstat (limited to 'Utilities/cmlibarchive/libarchive/archive_windows.h')
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_windows.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/Utilities/cmlibarchive/libarchive/archive_windows.h b/Utilities/cmlibarchive/libarchive/archive_windows.h
index 006ad03..6bf89c2 100644
--- a/Utilities/cmlibarchive/libarchive/archive_windows.h
+++ b/Utilities/cmlibarchive/libarchive/archive_windows.h
@@ -276,4 +276,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 */