Delen via


CComHeap-klasse

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse implementeert met behulp van de COM-geheugentoewijzingsfuncties IAtlMemMgr .

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

class CComHeap : public IAtlMemMgr

Leden

Openbare methoden

Naam Description
CComHeap::Allocate Roep deze methode aan om een blok geheugen toe te wijzen.
CComHeap::Free Roep deze methode aan om een blok geheugen vrij te maken dat door deze geheugenbeheerder is toegewezen.
CComHeap::GetSize Roep deze methode aan om de toegewezen grootte op te halen van een geheugenblok dat door deze geheugenbeheerder is toegewezen.
CComHeap::Reallocate Roep deze methode aan om geheugen dat door deze geheugenbeheerder is toegewezen, opnieuw toe te wijzen.

Opmerkingen

CComHeap implementeert geheugentoewijzingsfuncties met behulp van de COM-toewijzingsfuncties, waaronder CoTaskMemAlloc, CoTaskMemFree, IMalloc::GetSizeen CoTaskMemRealloc. De maximale hoeveelheid geheugen die kan worden toegewezen, is gelijk aan INT_MAX (2147483647) bytes.

Example

Zie het voorbeeld voor IAtlMemMgr.

Overnamehiërarchie

IAtlMemMgr

CComHeap

Requirements

Header: ATLComMem.h

CComHeap::Toewijzen

Roep deze methode aan om een blok geheugen toe te wijzen.

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

Parameterwaarden

nBytes
Het aangevraagde aantal bytes in het nieuwe geheugenblok.

Retourwaarde

Retourneert een aanwijzer naar het begin van het zojuist toegewezen geheugenblok.

Opmerkingen

Roep CComHeap::Free aan of CComHeap::Reallocate maak het geheugen vrij dat door deze methode is toegewezen.

Geïmplementeerd met behulp van CoTaskMemAlloc.

CComHeap::Free

Roep deze methode aan om een blok geheugen vrij te maken dat door deze geheugenbeheerder is toegewezen.

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

Parameterwaarden

p
Aanwijzer naar geheugen dat eerder door deze geheugenbeheerder is toegewezen. NULL is een geldige waarde en doet niets.

Opmerkingen

Geïmplementeerd met behulp van CoTaskMemFree.

CComHeap::GetSize

Roep deze methode aan om de toegewezen grootte op te halen van een geheugenblok dat door deze geheugenbeheerder is toegewezen.

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

Parameterwaarden

p
Aanwijzer naar geheugen dat eerder door deze geheugenbeheerder is toegewezen.

Retourwaarde

Retourneert de grootte van het toegewezen geheugenblok in bytes.

Opmerkingen

Geïmplementeerd met behulp van IMalloc::GetSize.

CComHeap::Reallocate

Roep deze methode aan om geheugen dat door deze geheugenbeheerder is toegewezen, opnieuw toe te wijzen.

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

Parameterwaarden

p
Aanwijzer naar geheugen dat eerder door deze geheugenbeheerder is toegewezen.

nBytes
Het aangevraagde aantal bytes in het nieuwe geheugenblok.

Retourwaarde

Retourneert een aanwijzer naar het begin van het zojuist toegewezen geheugenblok.

Opmerkingen

Aanroep CComHeap::Free om het geheugen vrij te maken dat door deze methode is toegewezen.

Geïmplementeerd met behulp van CoTaskMemRealloc.

Zie ook

DynamicConsumer-voorbeeld
Overzicht van klassen
CWin32Heap klasse
CLocalHeap klasse
CGlobalHeap klasse
CCRTHeap klasse
IAtlMemMgr klasse