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