Поделиться через


Класс CComHeap

Замечание

Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

Этот класс реализует IAtlMemMgr функции выделения памяти COM.

Внимание

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

class CComHeap : public IAtlMemMgr

Участники

Открытые методы

Имя Описание
CComHeap::Allocate Вызовите этот метод, чтобы выделить блок памяти.
CComHeap::Free Вызовите этот метод, чтобы освободить блок памяти, выделенный этим диспетчером памяти.
CComHeap::GetSize Вызовите этот метод, чтобы получить выделенный размер блока памяти, выделенного этим диспетчером памяти.
CComHeap::Reallocate Вызовите этот метод для перераспределения памяти, выделенной данным диспетчером памяти.

Замечания

CComHeapреализует функции выделения памяти с помощью функций выделения COM, включая CoTaskMemAlloc, CoTaskMemFreeIMalloc::GetSizeи CoTaskMemRealloc. Максимальный объем памяти, который можно выделить, равен INT_MAX (2147483647) байтам.

Пример

Пример см. в примере IAtlMemMgr.

Иерархия наследования

IAtlMemMgr

CComHeap

Требования

Заголовок: ATLComMem.h

CComHeap::Allocate

Вызовите этот метод, чтобы выделить блок памяти.

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

Параметры

nBytes
Запрошенное число байтов в новом блоке памяти.

Возвращаемое значение

Возвращает указатель на начало выделенного блока памяти.

Замечания

Вызов CComHeap::Free или CComHeap::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 Класс