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


Класс CComHeap

Этот класс реализует 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 Класса