CComHeap
クラス
このクラスでは、COM メモリ割り当て関数を使用して IAtlMemMgr
を実装します。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class CComHeap : public IAtlMemMgr
メンバー
パブリック メソッド
名前 | 説明 |
---|---|
CComHeap::Allocate |
メモリ ブロックを割り当てるには、このメソッドを呼び出します。 |
CComHeap::Free |
このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックを解放します。 |
CComHeap::GetSize |
このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックのサイズを取得します。 |
CComHeap::Reallocate |
このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリの再割り当てを行います。 |
解説
CComHeap
では、CoTaskMemAlloc
、CoTaskMemFree
、IMalloc::GetSize
、CoTaskMemRealloc
などの COM 割り当て関数を使用し、メモリ割り当て関数を実装します。 割り当てることができるメモリの最大量は、INT_MAX
(2147483647) バイトです。
例
IAtlMemMgr
の例を参照してください。
継承階層
IAtlMemMgr
CComHeap
要件
ヘッダー: ATLComMem.h
CComHeap::Allocate
メモリ ブロックを割り当てるには、このメソッドを呼び出します。
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
パラメーター
nBytes
新しいメモリ ブロック内の要求されたバイト数。
戻り値
新しく割り当てられたメモリ ブロックの先頭へのポインターを返します。
解説
このメソッドによって割り当てられたメモリを解放するには、CComHeap::Free
または CComHeap::Reallocate
を呼び出します。
CoTaskMemAlloc
を使用して実装されます。
CComHeap::Free
このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックを解放します。
virtual void Free(void* p) throw();
パラメーター
p
このメモリ マネージャーによって以前に割り当てられたメモリへのポインター。 NULL は有効な値であり、何も行いません。
解説
CoTaskMemFree
を使用して実装されます。
CComHeap::GetSize
このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックのサイズを取得します。
virtual size_t GetSize(void* p) throw();
パラメーター
p
このメモリ マネージャーによって以前に割り当てられたメモリへのポインター。
戻り値
割り当てられたメモリのサイズ (バイト単位) が返されます。
解説
IMalloc::GetSize
を使用して実装されます。
CComHeap::Reallocate
このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリの再割り当てを行います。
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
パラメーター
p
このメモリ マネージャーによって以前に割り当てられたメモリへのポインター。
nBytes
新しいメモリ ブロック内の要求されたバイト数。
戻り値
新しく割り当てられたメモリ ブロックの先頭へのポインターを返します。
解説
このメソッドによって割り当てられたメモリを解放するには、CComHeap::Free
を呼び出します。
CoTaskMemRealloc
を使用して実装されます。
関連項目
DynamicConsumer サンプル
クラスの概要
CWin32Heap
クラス
CLocalHeap
クラス
CGlobalHeap
クラス
CCRTHeap
クラス
IAtlMemMgr
クラス