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.
This commit is contained in:
parent
297d9f2032
commit
e2dc5561bb
@ -60,8 +60,12 @@ OPTION(ENABLE_ACL "Enable ACL support" ON)
|
|||||||
OPTION(ENABLE_ICONV "Enable iconv support" ON)
|
OPTION(ENABLE_ICONV "Enable iconv support" ON)
|
||||||
|
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
SET(_WIN32_WINNT 0x0500 CACHE INTERNAL "Setting _WIN32_WINNT to 0x0500 for Windows 2000 APIs")
|
IF(MSVC60)
|
||||||
SET(WINVER 0x0500 CACHE INTERNAL "Setting WINVER to 0x0500 for Windows 2000 APIs")
|
SET(WINVER 0x0400)
|
||||||
|
ELSE()
|
||||||
|
SET(WINVER 0x0500)
|
||||||
|
ENDIF()
|
||||||
|
SET(_WIN32_WINNT ${WINVER})
|
||||||
ENDIF(WIN32)
|
ENDIF(WIN32)
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -276,4 +276,22 @@ typedef int mbstate_t;
|
|||||||
size_t wcrtomb(char *, wchar_t, mbstate_t *);
|
size_t wcrtomb(char *, wchar_t, mbstate_t *);
|
||||||
#endif
|
#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 */
|
#endif /* LIBARCHIVE_ARCHIVE_WINDOWS_H_INCLUDED */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user