Teilen über


CComHeap-Klasse

Diese Klasse implementiert die COM-Speicherzuweisungsfunktionen IAtlMemMgr .

Wichtig

Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Syntax

class CComHeap : public IAtlMemMgr

Member

Öffentliche Methoden

Name Beschreibung
CComHeap::Allocate Rufen Sie diese Methode auf, um einen Speicherblock zu belegen.
CComHeap::Free Rufen Sie diese Methode auf, um einen Speicherblock freizugeben, der von diesem Speicher-Manager zugewiesen wurde.
CComHeap::GetSize Rufen Sie diese Methode auf, um die zugewiesene Größe eines Speicherblocks abzurufen, der von diesem Speicher-Manager zugewiesen wurde.
CComHeap::Reallocate Rufen Sie diese Methode auf, um den von diesem Speicher-Manager zugeordneten Arbeitsspeicher neu zuzuordnen.

Hinweise

CComHeapimplementiert Speicherzuweisungsfunktionen mithilfe der COM-Zuordnungsfunktionen, einschließlich CoTaskMemAlloc, CoTaskMemFree, und IMalloc::GetSizeCoTaskMemRealloc. Die maximale Speichermenge, die zugewiesen werden kann, ist gleich INT_MAX (2147483647) Bytes.

Beispiel

Ein Beispiel hierfür finden Sie unter IAtlMemMgr.

Vererbungshierarchie

IAtlMemMgr

CComHeap

Anforderungen

Header: ATLComMem.h

CComHeap::Assigned

Rufen Sie diese Methode auf, um einen Speicherblock zu belegen.

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

Parameter

nBytes
Die angeforderte Anzahl von Bytes im neuen Speicherblock.

Rückgabewert

Gibt einen Zeiger auf den Anfang des neu belegten Speicherblocks zurück.

Hinweise

Rufen Sie CComHeap::Free den von dieser Methode zugewiesenen Speicher auf oder CComHeap::Reallocate geben Sie ihn frei.

Implementiert mit CoTaskMemAlloc.

CComHeap::Free

Rufen Sie diese Methode auf, um einen Speicherblock freizugeben, der von diesem Speicher-Manager zugewiesen wurde.

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

Parameter

p
Ein Zeiger auf den Arbeitsspeicher, der zuvor von diesem Speicher-Manager zugeordnet wurde. NULL ist ein gültiger Wert und führt nichts aus.

Hinweise

Implementiert mit CoTaskMemFree.

CComHeap::GetSize

Rufen Sie diese Methode auf, um die zugewiesene Größe eines Speicherblocks abzurufen, der von diesem Speicher-Manager zugewiesen wurde.

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

Parameter

p
Ein Zeiger auf den Arbeitsspeicher, der zuvor von diesem Speicher-Manager zugeordnet wurde.

Rückgabewert

Gibt die Größe des zugeordneten Speicherblocks in Bytes zurück.

Hinweise

Implementiert mit IMalloc::GetSize.

CComHeap::Reallocate

Rufen Sie diese Methode auf, um den von diesem Speicher-Manager zugeordneten Arbeitsspeicher neu zuzuordnen.

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

Parameter

p
Ein Zeiger auf den Arbeitsspeicher, der zuvor von diesem Speicher-Manager zugeordnet wurde.

nBytes
Die angeforderte Anzahl von Bytes im neuen Speicherblock.

Rückgabewert

Gibt einen Zeiger auf den Anfang des neu belegten Speicherblocks zurück.

Hinweise

Rufen Sie CComHeap::Free auf, um den von dieser Methode zugewiesenen Speicher freizugeben.

Implementiert mit CoTaskMemRealloc.

Siehe auch

DynamicConsumer-Beispiel
Klassenübersicht
CWin32Heap Klasse
CLocalHeap Klasse
CGlobalHeap Klasse
CCRTHeap Klasse
IAtlMemMgr Klasse