Bagikan melalui


CComHeap Kelas

Kelas ini mengimplementasikan IAtlMemMgr penggunaan fungsi alokasi memori COM.

Penting

Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.

Sintaks

class CComHeap : public IAtlMemMgr

Anggota

Metode Publik

Nama Deskripsi
CComHeap::Allocate Panggil metode ini untuk mengalokasikan blok memori.
CComHeap::Free Panggil metode ini untuk membebaskan blok memori yang dialokasikan oleh manajer memori ini.
CComHeap::GetSize Panggil metode ini untuk mendapatkan ukuran blok memori yang dialokasikan oleh manajer memori ini.
CComHeap::Reallocate Panggil metode ini untuk merealokasi memori yang dialokasikan oleh manajer memori ini.

Keterangan

CComHeapmenerapkan fungsi alokasi memori menggunakan fungsi alokasi COM, termasuk CoTaskMemAlloc, , CoTaskMemFreeIMalloc::GetSize, dan CoTaskMemRealloc. Jumlah maksimum memori yang dapat dialokasikan sama dengan INT_MAX (2147483647) byte.

Contoh

Lihat contoh untuk IAtlMemMgr.

Hierarki Warisan

IAtlMemMgr

CComHeap

Persyaratan

Header: ATLComMem.h

CComHeap::Alokasikan

Panggil metode ini untuk mengalokasikan blok memori.

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

Parameter

nBytes
Jumlah byte yang diminta di blok memori baru.

Nilai hasil

Mengembalikan penunjuk ke awal blok memori yang baru dialokasikan.

Keterangan

Panggil CComHeap::Free atau CComHeap::Reallocate untuk membebaskan memori yang dialokasikan oleh metode ini.

Diimplementasikan menggunakan CoTaskMemAlloc.

CComHeap::Free

Panggil metode ini untuk membebaskan blok memori yang dialokasikan oleh manajer memori ini.

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

Parameter

p
Pointer ke memori yang sebelumnya dialokasikan oleh manajer memori ini. NULL adalah nilai yang valid dan tidak melakukan apa pun.

Keterangan

Diimplementasikan menggunakan CoTaskMemFree.

CComHeap::GetSize

Panggil metode ini untuk mendapatkan ukuran blok memori yang dialokasikan oleh manajer memori ini.

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

Parameter

p
Pointer ke memori yang sebelumnya dialokasikan oleh manajer memori ini.

Nilai hasil

Mengembalikan ukuran blok memori yang dialokasikan dalam byte.

Keterangan

Diimplementasikan menggunakan IMalloc::GetSize.

CComHeap::Reallocate

Panggil metode ini untuk merealokasi memori yang dialokasikan oleh manajer memori ini.

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

Parameter

p
Pointer ke memori yang sebelumnya dialokasikan oleh manajer memori ini.

nBytes
Jumlah byte yang diminta di blok memori baru.

Nilai hasil

Mengembalikan penunjuk ke awal blok memori yang baru dialokasikan.

Keterangan

Panggil CComHeap::Free untuk membebaskan memori yang dialokasikan oleh metode ini.

Diimplementasikan menggunakan CoTaskMemRealloc.

Lihat juga

Sampel DynamicConsumer
Gambaran Umum Kelas
CWin32Heap Kelas
CLocalHeap Kelas
CGlobalHeap Kelas
CCRTHeap Kelas
IAtlMemMgr Kelas