CGlobalHeap Class
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at CGlobalHeap Class.
This class implements IAtlMemMgr using the Win32 global heap functions.
Important
This class and its members cannot be used in applications that execute in the Windows Runtime.
Syntax
class CGlobalHeap : public IAtlMemMgr
Members
Public Methods
Name | Description |
---|---|
CGlobalHeap::Allocate | Call this method to allocate a block of memory. |
CGlobalHeap::Free | Call this method to free a block of memory allocated by this memory manager. |
CGlobalHeap::GetSize | Call this method to get the allocated size of a memory block allocated by this memory manager. |
CGlobalHeap::Reallocate | Call this method to reallocate memory allocated by this memory manager. |
Remarks
CGlobalHeap
implements memory allocation functions using the Win32 global heap functions.
Note
The global heap functions are slower than other memory management functions and do not provide as many features. Therefore, new applications should use the heap functions. These are available in the CWin32Heap class. Global functions are still used by DDE and the clipboard functions.
Example
See the example for IAtlMemMgr.
Inheritance Hierarchy
IAtlMemMgr
CGlobalHeap
Requirements
Header: atlmem.h
CGlobalHeap::Allocate
Call this method to allocate a block of memory.
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
Parameters
nBytes
The requested number of bytes in the new memory block.
Return Value
Returns a pointer to the start of the newly allocated memory block.
Remarks
Call CGlobalHeap::Free or CGlobalHeap::Reallocate to free the memory allocated by this method.
Implemented using GlobalAlloc with a flag parameter of GMEM_FIXED.
CGlobalHeap::Free
Call this method to free a block of memory allocated by this memory manager.
virtual void Free(void* p) throw();
Parameters
p
Pointer to memory previously allocated by this memory manager. NULL is a valid value and does nothing.
Remarks
Implemented using GlobalFree.
CGlobalHeap::GetSize
Call this method to get the allocated size of a memory block allocated by this memory manager.
virtual size_t GetSize(void* p) throw();
Parameters
p
Pointer to memory previously allocated by this memory manager.
Return Value
Returns the size of the allocated memory block in bytes.
Remarks
Implemented using GlobalSize.
CGlobalHeap::Reallocate
Call this method to reallocate memory allocated by this memory manager.
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
Parameters
p
Pointer to memory previously allocated by this memory manager.
nBytes
The requested number of bytes in the new memory block.
Return Value
Returns a pointer to the start of the newly allocated memory block.
Remarks
Call CGlobalHeap::Free to free the memory allocated by this method.
Implemented using GlobalReAlloc.
See Also
Class Overview
CComHeap Class
CWin32Heap Class
CLocalHeap Class
CCRTHeap Class
IAtlMemMgr Class