CGlobalHeap クラス
このクラスは、Win32 グローバル ヒープ関数を使用して IAtlMemMgr を実装します。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class CGlobalHeap : public IAtlMemMgr
メンバー
パブリック メソッド
名前 | 説明 |
---|---|
CGlobalHeap::Allocate | メモリ ブロックを割り当てるには、このメソッドを呼び出します。 |
CGlobalHeap::Free | このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックを解放します。 |
CGlobalHeap::GetSize | このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックのサイズを取得します。 |
CGlobalHeap::Reallocate | このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリの再割り当てを行います。 |
解説
CGlobalHeap
では、Win32 グローバル ヒープ関数を利用し、メモリ割り当て関数が実装されます。
Note
グローバル ヒープ関数は、他のメモリ管理機能よりも低速で、多くの機能を提供しません。 そのため、新しいアプリケーションではヒープ関数を使用する必要があります。 CWin32Heap クラスで使用可能です。 グローバル関数は、DDE とクリップボード関数によって引き続き使用されます。
例
IAtlMemMgr の例を参照してください。
継承階層
IAtlMemMgr
CGlobalHeap
要件
ヘッダー: atlmem.h
CGlobalHeap::Allocate
メモリ ブロックを割り当てるには、このメソッドを呼び出します。
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
パラメーター
nBytes
新しいメモリ ブロック内の要求されたバイト数。
戻り値
新しく割り当てられたメモリ ブロックの先頭へのポインターを返します。
解説
このメソッドによって割り当てられたメモリを解放するには、CGlobalHeap::Free または CGlobalHeap::Reallocate を呼び出します。
フラグ パラメーターが GMEM_FIXED の GlobalAlloc を使用して実装されます。
CGlobalHeap::Free
このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックを解放します。
virtual void Free(void* p) throw();
パラメーター
P
このメモリ マネージャーによって以前に割り当てられたメモリへのポインター。 NULL は有効な値であり、何も行いません。
解説
GlobalFree を使用して実装されます。
CGlobalHeap::GetSize
このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックのサイズを取得します。
virtual size_t GetSize(void* p) throw();
パラメーター
P
このメモリ マネージャーによって以前に割り当てられたメモリへのポインター。
戻り値
割り当てられたメモリのサイズ (バイト単位) が返されます。
解説
GlobalSize を使用して実装されます。
CGlobalHeap::Reallocate
このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリの再割り当てを行います。
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
パラメーター
P
このメモリ マネージャーによって以前に割り当てられたメモリへのポインター。
nBytes
新しいメモリ ブロック内の要求されたバイト数。
戻り値
新しく割り当てられたメモリ ブロックの先頭へのポインターを返します。
解説
CGlobalHeap::Free を呼び出し、このメソッドによって割り当てられたメモリを解放します。
GlobalReAlloc を使用して実装されます。
関連項目
クラスの概要
CComHeap クラス
CWin32Heap クラス
CLocalHeap クラス
CCRTHeap クラス
IAtlMemMgr クラス