Chris@16: // thread.hpp --------------------------------------------------------------// Chris@16: Chris@16: // Copyright 2010 Vicente J. Botet Escriba Chris@16: Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // See http://www.boost.org/LICENSE_1_0.txt Chris@16: Chris@16: Chris@16: #ifndef BOOST_DETAIL_WINAPI_FILE_MANAGEMENT_HPP Chris@16: #define BOOST_DETAIL_WINAPI_FILE_MANAGEMENT_HPP Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: #ifdef BOOST_HAS_PRAGMA_ONCE Chris@16: #pragma once Chris@16: #endif Chris@16: Chris@16: namespace boost Chris@16: { Chris@16: namespace detail Chris@16: { Chris@16: namespace winapi Chris@16: { Chris@16: #if defined( BOOST_USE_WINDOWS_H ) Chris@16: using ::CreateFileA; Chris@16: using ::DeleteFileA; Chris@16: using ::FindFirstFileA; Chris@16: using ::FindNextFileA; Chris@16: using ::FindClose; Chris@16: using ::GetFileSizeEx; Chris@16: using ::MoveFileExA; Chris@16: using ::SetFileValidData; Chris@16: #else Chris@16: extern "C" { Chris@16: typedef struct _OVERLAPPED { Chris@16: ULONG_PTR Internal; Chris@16: ULONG_PTR InternalHigh; Chris@16: union { Chris@16: struct { Chris@16: DWORD Offset; Chris@16: DWORD OffsetHigh; Chris@16: } ; Chris@16: PVOID Pointer; Chris@16: } ; Chris@16: HANDLE hEvent; Chris@16: } OVERLAPPED, *LPOVERLAPPED; Chris@16: Chris@16: Chris@16: __declspec(dllimport) void * __stdcall Chris@16: CreateFileA (const char *, unsigned long, unsigned long, struct SECURITY_ATTRIBUTES_*, unsigned long, unsigned long, void *); Chris@16: __declspec(dllimport) int __stdcall Chris@16: DeleteFileA (const char *); Chris@16: __declspec(dllimport) void *__stdcall Chris@16: FindFirstFileA(const char *lpFileName, win32_find_data_t *lpFindFileData); Chris@16: __declspec(dllimport) int __stdcall Chris@16: FindNextFileA(void *hFindFile, win32_find_data_t *lpFindFileData); Chris@16: __declspec(dllimport) int __stdcall Chris@16: FindClose(void *hFindFile); Chris@16: __declspec(dllimport) BOOL __stdcall Chris@16: GetFileSizeEx( Chris@16: HANDLE_ hFile, Chris@16: PLARGE_INTEGER_ lpFileSize Chris@16: ); Chris@16: __declspec(dllimport) int __stdcall Chris@16: MoveFileExA (const char *, const char *, unsigned long); Chris@16: __declspec(dllimport) BOOL_ __stdcall Chris@16: SetFileValidData( Chris@16: HANDLE_ hFile, Chris@16: LONGLONG_ ValidDataLength Chris@16: ); Chris@16: __declspec(dllimport) BOOL_ __stdcall Chris@16: SetEndOfFile( Chris@16: HANDLE_ hFile Chris@16: ); Chris@16: __declspec(dllimport) BOOL_ __stdcall Chris@16: SetFilePointerEx( Chris@16: HANDLE_ hFile, Chris@16: LARGE_INTEGER_ liDistanceToMove, Chris@16: PLARGE_INTEGER_ lpNewFilePointer, Chris@16: DWORD_ dwMoveMethod Chris@16: ); Chris@16: __declspec(dllimport) BOOL_ __stdcall Chris@16: LockFile( Chris@16: HANDLE_ hFile, Chris@16: DWORD_ dwFileOffsetLow, Chris@16: DWORD_ dwFileOffsetHigh, Chris@16: DWORD_ nNumberOfBytesToLockLow, Chris@16: DWORD_ nNumberOfBytesToLockHigh Chris@16: ); Chris@16: __declspec(dllimport) BOOL_ __stdcall Chris@16: UnlockFile( Chris@16: HANDLE_ hFile, Chris@16: DWORD_ dwFileOffsetLow, Chris@16: DWORD_ dwFileOffsetHigh, Chris@16: DWORD_ nNumberOfBytesToUnlockLow, Chris@16: DWORD_ nNumberOfBytesToUnlockHigh Chris@16: ); Chris@16: __declspec(dllimport) BOOL_ __stdcall Chris@16: LockFileEx( Chris@16: HANDLE_ hFile, Chris@16: DWORD_ dwFlags, Chris@16: DWORD_ dwReserved, Chris@16: DWORD_ nNumberOfBytesToLockLow, Chris@16: DWORD_ nNumberOfBytesToLockHigh, Chris@16: LPOVERLAPPED_ lpOverlapped Chris@16: ); Chris@16: __declspec(dllimport) BOOL_ __stdcall Chris@16: UnlockFileEx( Chris@16: HANDLE_ hFile, Chris@16: DWORD_ dwReserved, Chris@16: DWORD_ nNumberOfBytesToUnlockLow, Chris@16: DWORD_ nNumberOfBytesToUnlockHigh, Chris@16: LPOVERLAPPED_ lpOverlapped Chris@16: ); Chris@16: __declspec(dllimport) BOOL_ __stdcall Chris@16: WriteFile( Chris@16: HANDLE_ hFile, Chris@16: LPCVOID_ lpBuffer, Chris@16: DWORD_ nNumberOfBytesToWrite, Chris@16: LPDWORD_ lpNumberOfBytesWritten, Chris@16: LPOVERLAPPED_ lpOverlapped Chris@16: ); Chris@16: } Chris@16: #endif Chris@16: } Chris@16: } Chris@16: } Chris@16: Chris@16: #endif // BOOST_DETAIL_WINAPI_THREAD_HPP