CComHeap

此类使用 COM 内存分配函数实现 IAtlMemMgr

重要

无法在 Windows 运行时中执行的应用程序中使用此类及其成员。

语法

class CComHeap : public IAtlMemMgr

成员

公共方法

名称 描述
CComHeap::Allocate 调用此方法来分配内存块。
CComHeap::Free 调用此方法以释放由该内存管理器分配的内存。
CComHeap::GetSize 调用此方法以获取此内存管理器分配的内存块的分配大小。
CComHeap::Reallocate 调用此方法以重新分配由该内存管理器分配的内存。

备注

CComHeap 使用 COM 分配函数(包括CoTaskMemAllocCoTaskMemFreeIMalloc::GetSizeCoTaskMemRealloc)实现内存分配函数。 可分配的最大内存量等于 INT_MAX (2147483647) 字节。

示例

请参阅 IAtlMemMgr 的示例。

继承层次结构

IAtlMemMgr

CComHeap

要求

标头:ATLComMem.h

CComHeap::Allocate

调用此方法来分配内存块。

virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();

参数

nBytes
新内存块中请求的字节数。

返回值

将指针返回到新分配内存块的起始位置。

注解

调用 CComHeap::FreeCComHeap::Reallocate 可释放由此方法分配的内存。

使用 CoTaskMemAlloc 实现。

CComHeap::Free

调用此方法以释放由该内存管理器分配的内存。

virtual void Free(void* p) throw();

参数

p
指向此内存管理器以前分配的内存的指针。 NULL 是有效值,不执行任何操作。

备注

使用 CoTaskMemFree 实现。

CComHeap::GetSize

调用此方法以获取此内存管理器分配的内存块的分配大小。

virtual size_t GetSize(void* p) throw();

参数

p
指向此内存管理器以前分配的内存的指针。

返回值

返回分配的内存块的大小(以字节为单位)。

备注

使用 IMalloc::GetSize 实现。

CComHeap::Reallocate

调用此方法以重新分配由该内存管理器分配的内存。

virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();

参数

p
指向此内存管理器以前分配的内存的指针。

nBytes
新内存块中请求的字节数。

返回值

将指针返回到新分配内存块的起始位置。

备注

调用 CComHeap::Free 可释放由此方法分配的内存。

使用 CoTaskMemRealloc 实现。

另请参阅

DynamicConsumer 示例
类概述
CWin32Heap
CLocalHeap
CGlobalHeap
CCRTHeap
IAtlMemMgr