Freigeben über


CGlobalHeap-Klasse

Diese Klasse implementiert IAtlMemMgr mithilfe der globalen Win32-Heapfunktionen.

Wichtig

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

Syntax

class CGlobalHeap : public IAtlMemMgr

Member

Öffentliche Methoden

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

Hinweise

CGlobalHeap implementiert Speicherzuordnungsfunktionen mithilfe der globalen Win32-Heapfunktionen.

Hinweis

Die globalen Heap-Funktionen sind langsamer als andere Speicherverwaltungsfunktionen und bieten nicht so viele Features. Daher sollten neue Anwendungen die Heap-Funktionen verwenden. Diese sind in der CWin32Heap-Klasse verfügbar. Globale Funktionen werden weiterhin von DDE und den Zwischenablagefunktionen verwendet.

Beispiel

Sehen Sie sich das Beispiel für IAtlMemMgr an.

Vererbungshierarchie

IAtlMemMgr

CGlobalHeap

Anforderungen

Kopfzeile: atlmem.h

CGlobalHeap::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 CGlobalHeap::Free oder CGlobalHeap::Reallocate auf, um den von dieser Methode zugewiesenen Speicher freizugeben.

Implementiert mithilfe von GlobalAlloc mit einem Flagparameter von GMEM_FIXED.

CGlobalHeap::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 GlobalFree.

CGlobalHeap::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 mithilfe von GlobalSize.

CGlobalHeap::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 CGlobalHeap::Free auf, um den von dieser Methode zugewiesenen Speicher freizugeben.

Implementiert mithilfe von GlobalReAlloc.

Siehe auch

Klassenübersicht
CComHeap-Klasse
CWin32Heap-Klasse
CLocalHeap-Klasse
CComHeap-Klasse
IAtlMemMgr-Klasse