234 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			234 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| //  basic_types.hpp  --------------------------------------------------------------//
 | |
| 
 | |
| //  Copyright 2010 Vicente J. Botet Escriba
 | |
| //  Copyright 2015 Andrey Semashev
 | |
| 
 | |
| //  Distributed under the Boost Software License, Version 1.0.
 | |
| //  See http://www.boost.org/LICENSE_1_0.txt
 | |
| 
 | |
| #ifndef BOOST_DETAIL_WINAPI_BASIC_TYPES_HPP
 | |
| #define BOOST_DETAIL_WINAPI_BASIC_TYPES_HPP
 | |
| 
 | |
| #include <cstdarg>
 | |
| #include <boost/cstdint.hpp>
 | |
| #include <boost/detail/winapi/config.hpp>
 | |
| 
 | |
| #ifdef BOOST_HAS_PRAGMA_ONCE
 | |
| #pragma once
 | |
| #endif
 | |
| 
 | |
| #if defined( BOOST_USE_WINDOWS_H )
 | |
| # include <windows.h>
 | |
| #elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) ||  defined(__CYGWIN__)
 | |
| # include <winerror.h>
 | |
| # 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
 | |
| // Windows CE defines a few functions as inline functions in kfuncs.h
 | |
| typedef int BOOL;
 | |
| typedef unsigned long DWORD;
 | |
| typedef void* HANDLE;
 | |
| #  include <kfuncs.h>
 | |
| # else
 | |
| #  ifndef WINAPI
 | |
| #   define WINAPI  __stdcall
 | |
| #  endif
 | |
| # endif
 | |
| # ifndef NTAPI
 | |
| #  define NTAPI __stdcall
 | |
| # endif
 | |
| #else
 | |
| # error "Win32 functions not available"
 | |
| #endif
 | |
| 
 | |
| #ifndef NO_STRICT
 | |
| #ifndef STRICT
 | |
| #define STRICT 1
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #if defined(STRICT)
 | |
| #define BOOST_DETAIL_WINAPI_DECLARE_HANDLE(x) struct x##__; typedef struct x##__ *x
 | |
| #else
 | |
| #define BOOST_DETAIL_WINAPI_DECLARE_HANDLE(x) typedef void* x
 | |
| #endif
 | |
| 
 | |
| #if !defined( BOOST_USE_WINDOWS_H )
 | |
| extern "C" {
 | |
| union _LARGE_INTEGER;
 | |
| struct _SECURITY_ATTRIBUTES;
 | |
| BOOST_DETAIL_WINAPI_DECLARE_HANDLE(HINSTANCE);
 | |
| typedef HINSTANCE HMODULE;
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #if defined(__GNUC__)
 | |
| #define BOOST_DETAIL_WINAPI_MAY_ALIAS __attribute__ ((__may_alias__))
 | |
| #else
 | |
| #define BOOST_DETAIL_WINAPI_MAY_ALIAS
 | |
| #endif
 | |
| 
 | |
| // MinGW64 gcc 4.8.2 fails to compile function declarations with boost::detail::winapi::VOID_ arguments even though
 | |
| // the typedef expands to void. In Windows SDK, VOID is a macro which unfolds to void. We use our own macro in such cases.
 | |
| #define BOOST_DETAIL_WINAPI_VOID void
 | |
| 
 | |
| namespace boost {
 | |
| namespace detail {
 | |
| namespace winapi {
 | |
| #if defined( BOOST_USE_WINDOWS_H )
 | |
| 
 | |
| typedef ::BOOL BOOL_;
 | |
| typedef ::PBOOL PBOOL_;
 | |
| typedef ::LPBOOL LPBOOL_;
 | |
| typedef ::BOOLEAN BOOLEAN_;
 | |
| typedef ::PBOOLEAN PBOOLEAN_;
 | |
| typedef ::BYTE BYTE_;
 | |
| typedef ::PBYTE PBYTE_;
 | |
| typedef ::LPBYTE LPBYTE_;
 | |
| typedef ::WORD WORD_;
 | |
| typedef ::PWORD PWORD_;
 | |
| typedef ::LPWORD LPWORD_;
 | |
| typedef ::DWORD DWORD_;
 | |
| typedef ::PDWORD PDWORD_;
 | |
| typedef ::LPDWORD LPDWORD_;
 | |
| typedef ::HANDLE HANDLE_;
 | |
| typedef ::PHANDLE PHANDLE_;
 | |
| typedef ::SHORT SHORT_;
 | |
| typedef ::PSHORT PSHORT_;
 | |
| typedef ::USHORT USHORT_;
 | |
| typedef ::PUSHORT PUSHORT_;
 | |
| typedef ::INT INT_;
 | |
| typedef ::PINT PINT_;
 | |
| typedef ::LPINT LPINT_;
 | |
| typedef ::UINT UINT_;
 | |
| typedef ::PUINT PUINT_;
 | |
| typedef ::LONG LONG_;
 | |
| typedef ::PLONG PLONG_;
 | |
| typedef ::LPLONG LPLONG_;
 | |
| typedef ::ULONG ULONG_;
 | |
| typedef ::PULONG PULONG_;
 | |
| typedef ::LONGLONG LONGLONG_;
 | |
| typedef ::ULONGLONG ULONGLONG_;
 | |
| typedef ::INT_PTR INT_PTR_;
 | |
| typedef ::UINT_PTR UINT_PTR_;
 | |
| typedef ::LONG_PTR LONG_PTR_;
 | |
| typedef ::ULONG_PTR ULONG_PTR_;
 | |
| typedef ::DWORD_PTR DWORD_PTR_;
 | |
| typedef ::PDWORD_PTR PDWORD_PTR_;
 | |
| typedef ::SIZE_T SIZE_T_;
 | |
| typedef ::PSIZE_T PSIZE_T_;
 | |
| typedef ::SSIZE_T SSIZE_T_;
 | |
| typedef ::PSSIZE_T PSSIZE_T_;
 | |
| typedef VOID VOID_; // VOID is a macro
 | |
| typedef ::PVOID PVOID_;
 | |
| typedef ::LPVOID LPVOID_;
 | |
| typedef ::LPCVOID LPCVOID_;
 | |
| typedef ::CHAR CHAR_;
 | |
| typedef ::LPSTR LPSTR_;
 | |
| typedef ::LPCSTR LPCSTR_;
 | |
| typedef ::WCHAR WCHAR_;
 | |
| typedef ::LPWSTR LPWSTR_;
 | |
| typedef ::LPCWSTR LPCWSTR_;
 | |
| 
 | |
| #else // defined( BOOST_USE_WINDOWS_H )
 | |
| 
 | |
| typedef int BOOL_;
 | |
| typedef BOOL_* PBOOL_;
 | |
| typedef BOOL_* LPBOOL_;
 | |
| typedef unsigned char BYTE_;
 | |
| typedef BYTE_* PBYTE_;
 | |
| typedef BYTE_* LPBYTE_;
 | |
| typedef BYTE_ BOOLEAN_;
 | |
| typedef BOOLEAN_* PBOOLEAN_;
 | |
| typedef unsigned short WORD_;
 | |
| typedef WORD_* PWORD_;
 | |
| typedef WORD_* LPWORD_;
 | |
| typedef unsigned long DWORD_;
 | |
| typedef DWORD_* PDWORD_;
 | |
| typedef DWORD_* LPDWORD_;
 | |
| typedef void* HANDLE_;
 | |
| typedef void** PHANDLE_;
 | |
| 
 | |
| typedef short SHORT_;
 | |
| typedef SHORT_* PSHORT_;
 | |
| typedef unsigned short USHORT_;
 | |
| typedef USHORT_* PUSHORT_;
 | |
| typedef int INT_;
 | |
| typedef INT_* PINT_;
 | |
| typedef INT_* LPINT_;
 | |
| typedef unsigned int UINT_;
 | |
| typedef UINT_* PUINT_;
 | |
| typedef long LONG_;
 | |
| typedef LONG_* PLONG_;
 | |
| typedef LONG_* LPLONG_;
 | |
| typedef unsigned long ULONG_;
 | |
| typedef ULONG_* PULONG_;
 | |
| 
 | |
| typedef boost::int64_t LONGLONG_;
 | |
| typedef boost::uint64_t ULONGLONG_;
 | |
| 
 | |
| # ifdef _WIN64
 | |
| #  if defined(__CYGWIN__)
 | |
| typedef long INT_PTR_;
 | |
| typedef unsigned long UINT_PTR_;
 | |
| typedef long LONG_PTR_;
 | |
| typedef unsigned long ULONG_PTR_;
 | |
| #  else
 | |
| typedef __int64 INT_PTR_;
 | |
| typedef unsigned __int64 UINT_PTR_;
 | |
| typedef __int64 LONG_PTR_;
 | |
| typedef unsigned __int64 ULONG_PTR_;
 | |
| #  endif
 | |
| # else
 | |
| typedef int INT_PTR_;
 | |
| typedef unsigned int UINT_PTR_;
 | |
| typedef long LONG_PTR_;
 | |
| typedef unsigned long ULONG_PTR_;
 | |
| # endif
 | |
| 
 | |
| typedef ULONG_PTR_ DWORD_PTR_, *PDWORD_PTR_;
 | |
| typedef ULONG_PTR_ SIZE_T_, *PSIZE_T_;
 | |
| typedef LONG_PTR_ SSIZE_T_, *PSSIZE_T_;
 | |
| 
 | |
| typedef void VOID_;
 | |
| 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 // defined( BOOST_USE_WINDOWS_H )
 | |
| 
 | |
| typedef ::HMODULE HMODULE_;
 | |
| 
 | |
| typedef union BOOST_DETAIL_WINAPI_MAY_ALIAS _LARGE_INTEGER {
 | |
|     struct {
 | |
|         DWORD_ LowPart;
 | |
|         LONG_ HighPart;
 | |
|     } u;
 | |
|     LONGLONG_ QuadPart;
 | |
| } LARGE_INTEGER_, *PLARGE_INTEGER_;
 | |
| 
 | |
| typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _SECURITY_ATTRIBUTES {
 | |
|     DWORD_  nLength;
 | |
|     LPVOID_ lpSecurityDescriptor;
 | |
|     BOOL_   bInheritHandle;
 | |
| } SECURITY_ATTRIBUTES_, *PSECURITY_ATTRIBUTES_, *LPSECURITY_ATTRIBUTES_;
 | |
| 
 | |
| }
 | |
| }
 | |
| }
 | |
| 
 | |
| #endif // BOOST_DETAIL_WINAPI_BASIC_TYPES_HPP
 | 
