16 LPVOID lpvMem = ::malloc (bytes);
18 if (lpvMem != NULL && dwFlags ==
MEM_ZERO) ZeroMemory (lpvMem, bytes);
25 size_t previousSize = _msize (lpvMem);
26 size_t currentSize = bytes;
27 LPBYTE lpbyNewMem = (LPBYTE)::realloc (lpvMem, bytes);
28 if (lpbyNewMem != NULL && currentSize > previousSize && dwFlags ==
MEM_ZERO)
29 ZeroMemory (&lpbyNewMem[previousSize], (currentSize - previousSize));
57 SIZE_T initialSize, SIZE_T maximumSize, DWORD dwOptions)
82 _hObject = ::HeapCreate (dwOptions, initialSize, maximumSize);
84 return _hObject == NULL ? FALSE : TRUE;
92 return _hObject == NULL ? FALSE : TRUE;
127 return ::HeapReAlloc (
_hObject, dwFlags, lpvMem, bytes);
132 return ::HeapFree (
_hObject, 0, lpvMem);
virtual LPVOID APIENTRY Allocate(SIZE_T bytes, DWORD dwFlags=MEM_ZERO)
メモリの取得
virtual LPVOID APIENTRY Reallocate(LPVOID lpvMem, SIZE_T bytes, DWORD dwFlags=MEM_ZERO)
取得メモリの拡大
virtual BOOL APIENTRY Free(LPVOID lpvMem)
メモリの返却
HANDLE _hObject
ハンドルを使用するWindowsAPIで保持するHANDLE値
virtual BOOL APIENTRY Free(LPVOID lpvMem)
メモリの返却
virtual LPVOID APIENTRY Allocate(SIZE_T bytes, DWORD dwFlags=MEM_ZERO)
メモリの取得
SIZE_T APIENTRY Compact() const
取得したヒープ領域の整理
virtual LPVOID APIENTRY Reallocate(LPVOID lpvMem, SIZE_T bytes, DWORD dwFlags=MEM_ZERO)
取得メモリの拡大
BOOL APIENTRY Create(SIZE_T initialSize=0, SIZE_T maximumSize=0, DWORD dwOptions=0)
ヒープ領域の取得
APIENTRY ~HeapMemory()
デストラクタ
SIZE_T APIENTRY BoundarySize(SIZE_T bytes) const
APIENTRY HeapMemory()
コンストラクタ
BOOL APIENTRY Close()
取得したヒープ領域の解放
BOOL APIENTRY Open()
システムヒープ領域の取得