1 /* 2 * Copyright 2010 Vicente J. Botet Escriba 3 * Copyright 2015, 2017 Andrey Semashev 4 * 5 * Distributed under the Boost Software License, Version 1.0. 6 * See http://www.boost.org/LICENSE_1_0.txt 7 */ 8 9 #ifndef BOOST_WINAPI_HEAP_MEMORY_HPP_INCLUDED_ 10 #define BOOST_WINAPI_HEAP_MEMORY_HPP_INCLUDED_ 11 12 #include <boost/winapi/basic_types.hpp> 13 14 #ifdef BOOST_HAS_PRAGMA_ONCE 15 #pragma once 16 #endif 17 18 #if !defined( BOOST_USE_WINDOWS_H ) 19 #undef HeapAlloc 20 extern "C" { 21 22 #if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM 23 BOOST_SYMBOL_IMPORT boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC 24 GetProcessHeaps(boost::winapi::DWORD_ NumberOfHeaps, boost::winapi::PHANDLE_ ProcessHeaps); 25 #endif // BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM 26 27 BOOST_SYMBOL_IMPORT boost::winapi::HANDLE_ BOOST_WINAPI_WINAPI_CC 28 GetProcessHeap(BOOST_WINAPI_DETAIL_VOID); 29 30 BOOST_SYMBOL_IMPORT boost::winapi::LPVOID_ BOOST_WINAPI_WINAPI_CC 31 HeapAlloc( 32 boost::winapi::HANDLE_ hHeap, 33 boost::winapi::DWORD_ dwFlags, 34 boost::winapi::SIZE_T_ dwBytes); 35 36 BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC 37 HeapFree( 38 boost::winapi::HANDLE_ hHeap, 39 boost::winapi::DWORD_ dwFlags, 40 boost::winapi::LPVOID_ lpMem); 41 42 BOOST_SYMBOL_IMPORT boost::winapi::LPVOID_ BOOST_WINAPI_WINAPI_CC 43 HeapReAlloc( 44 boost::winapi::HANDLE_ hHeap, 45 boost::winapi::DWORD_ dwFlags, 46 boost::winapi::LPVOID_ lpMem, 47 boost::winapi::SIZE_T_ dwBytes); 48 49 #if BOOST_WINAPI_PARTITION_APP_SYSTEM 50 BOOST_SYMBOL_IMPORT boost::winapi::HANDLE_ BOOST_WINAPI_WINAPI_CC 51 HeapCreate( 52 boost::winapi::DWORD_ flOptions, 53 boost::winapi::SIZE_T_ dwInitialSize, 54 boost::winapi::SIZE_T_ dwMaximumSize); 55 56 BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC 57 HeapDestroy(boost::winapi::HANDLE_ hHeap); 58 #endif // BOOST_WINAPI_PARTITION_APP_SYSTEM 59 60 } // extern "C" 61 #endif // !defined( BOOST_USE_WINDOWS_H ) 62 63 namespace boost { 64 namespace winapi { 65 66 #if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM 67 using ::GetProcessHeaps; 68 #endif 69 70 using ::GetProcessHeap; 71 using ::HeapAlloc; 72 using ::HeapFree; 73 using ::HeapReAlloc; 74 75 #if BOOST_WINAPI_PARTITION_APP_SYSTEM 76 using ::HeapCreate; 77 using ::HeapDestroy; 78 #endif 79 80 } 81 } 82 83 #endif // BOOST_WINAPI_HEAP_MEMORY_HPP_INCLUDED_ 84