Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс
Замечание
Библиотека активных шаблонов (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 Класс