// basic_types.hpp --------------------------------------------------------------// // Copyright 2010 Vicente J. Botet Escriba // Distributed under the Boost Software License, Version 1.0. // See http://www.boost.org/LICENSE_1_0.txt #ifndef BOOST_DETAIL_WIN_BASIC_TYPES_HPP #define BOOST_DETAIL_WIN_BASIC_TYPES_HPP #include #include #include #if defined( BOOST_USE_WINDOWS_H ) # include #elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__) # include // @FIXME Which condition must be tested # ifdef UNDER_CE # ifndef WINAPI # ifndef _WIN32_WCE_EMULATION # define WINAPI __cdecl // Note this doesn't match the desktop definition # else # define WINAPI __stdcall # endif # endif # else # ifndef WINAPI # define WINAPI __stdcall # endif # endif #else # error "Win32 functions not available" #endif namespace boost { namespace detail { namespace win32 { #if defined( BOOST_USE_WINDOWS_H ) typedef ::BOOL BOOL_; typedef ::WORD WORD_; typedef ::DWORD DWORD_; typedef ::HANDLE HANDLE_; typedef ::LONG LONG_; typedef ::LONGLONG LONGLONG_; typedef ::ULONG_PTR ULONG_PTR_; typedef ::LARGE_INTEGER LARGE_INTEGER_; typedef ::PLARGE_INTEGER PLARGE_INTEGER_; typedef ::PVOID PVOID_; typedef ::LPVOID LPVOID_; typedef ::CHAR CHAR_; typedef ::LPSTR LPSTR_; typedef ::LPCSTR LPCSTR_; typedef ::WCHAR WCHAR_; typedef ::LPWSTR LPWSTR_; typedef ::LPCWSTR LPCWSTR_; #else extern "C" { typedef int BOOL_; typedef unsigned short WORD_; typedef unsigned long DWORD_; typedef void* HANDLE_; typedef long LONG_; // @FIXME Which condition must be tested //~ #if !defined(_M_IX86) //~ #if defined(BOOST_NO_INT64_T) //~ typedef double LONGLONG_; //~ #else //~ typedef __int64 LONGLONG_; //~ #endif //~ #else //~ typedef double LONGLONG_; //~ #endif typedef boost::int64_t LONGLONG_; // @FIXME Which condition must be tested # ifdef _WIN64 #if defined(__CYGWIN__) typedef unsigned long ULONG_PTR_; #else typedef unsigned __int64 ULONG_PTR_; #endif # else typedef unsigned long ULONG_PTR_; # endif typedef struct _LARGE_INTEGER { LONGLONG_ QuadPart; } LARGE_INTEGER_; typedef LARGE_INTEGER_ *PLARGE_INTEGER_; typedef void *PVOID_; typedef void *LPVOID_; typedef const void *LPCVOID_; typedef char CHAR_; typedef CHAR_ *LPSTR_; typedef const CHAR_ *LPCSTR_; typedef wchar_t WCHAR_; typedef WCHAR_ *LPWSTR_; typedef const WCHAR_ *LPCWSTR_; } #endif } } } #endif // BOOST_DETAIL_WIN_TIME_HPP