Aracılığıyla paylaş


CComHeap Sınıfı

Bu sınıf, COM bellek ayırma işlevlerini kullanarak uygular IAtlMemMgr .

Önemli

Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

Sözdizimi

class CComHeap : public IAtlMemMgr

Üyeler

Genel yöntemler

Ad Tanım
CComHeap::Allocate Bir bellek bloğu ayırmak için bu yöntemi çağırın.
CComHeap::Free Bu bellek yöneticisi tarafından ayrılan bir bellek bloğunu boşaltmak için bu yöntemi çağırın.
CComHeap::GetSize Bu bellek yöneticisi tarafından ayrılan bir bellek bloğunun ayrılmış boyutunu almak için bu yöntemi çağırın.
CComHeap::Reallocate Bu bellek yöneticisi tarafından ayrılan belleği yeniden dağıtmak için bu yöntemi çağır.

Açıklamalar

CComHeap, CoTaskMemFree, IMalloc::GetSizeve CoTaskMemReallocgibi CoTaskMemAllocCOM ayırma işlevlerini kullanarak bellek ayırma işlevlerini uygular. Ayrılabilecek en fazla bellek miktarı (2147483647) bayta eşittir INT_MAX .

Örnek

örneğine IAtlMemMgrbakın.

Devralma hiyerarşisi

IAtlMemMgr

CComHeap

Gereksinimler

Üst bilgi: ATLComMem.h

CComHeap::Allocate

Bir bellek bloğu ayırmak için bu yöntemi çağırın.

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

Parametreler

nBytes
Yeni bellek bloğunda istenen bayt sayısı.

Dönüş değeri

Yeni ayrılan bellek bloğunun başlangıcına bir işaretçi döndürür.

Açıklamalar

Bu yöntem tarafından ayrılan belleği boşaltmak için veya CComHeap::Reallocate öğesini çağırınCComHeap::Free.

kullanılarak CoTaskMemAllocuygulanır.

CComHeap::Free

Bu bellek yöneticisi tarafından ayrılan bir bellek bloğunu boşaltmak için bu yöntemi çağırın.

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

Parametreler

p
Bu bellek yöneticisi tarafından daha önce ayrılan belleğe işaretçi. NULL geçerli bir değerdir ve hiçbir şey yapmaz.

Açıklamalar

kullanılarak CoTaskMemFreeuygulanır.

CComHeap::GetSize

Bu bellek yöneticisi tarafından ayrılan bir bellek bloğunun ayrılmış boyutunu almak için bu yöntemi çağırın.

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

Parametreler

p
Bu bellek yöneticisi tarafından daha önce ayrılan belleğe işaretçi.

Dönüş değeri

Ayrılan bellek bloğunun boyutunu bayt cinsinden döndürür.

Açıklamalar

kullanılarak IMalloc::GetSizeuygulanır.

CComHeap::Reallocate

Bu bellek yöneticisi tarafından ayrılan belleği yeniden dağıtmak için bu yöntemi çağır.

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

Parametreler

p
Bu bellek yöneticisi tarafından daha önce ayrılan belleğe işaretçi.

nBytes
Yeni bellek bloğunda istenen bayt sayısı.

Dönüş değeri

Yeni ayrılan bellek bloğunun başlangıcına bir işaretçi döndürür.

Açıklamalar

Bu yöntem tarafından ayrılan belleği boşaltmak için çağrısı CComHeap::Free .

kullanılarak CoTaskMemReallocuygulanır.

Ayrıca bkz.

DynamicConsumer Örneği
Sınıfa Genel Bakış
CWin32Heap Sınıfı
CLocalHeap Sınıfı
CGlobalHeap Sınıfı
CCRTHeap Sınıfı
IAtlMemMgr Sınıfı