IAtlStringMgr クラス
このクラスは、CStringT
メモリ マネージャーへのインターフェイスを表します。
構文
__interface IAtlStringMgr
メンバー
メソッド
Name | 説明 |
---|---|
Allocate | 新しい文字列データ構造を割り当てるには、このメソッドを呼び出します。 |
複製 | このメソッドを呼び出して、CSimpleStringT の別のインスタンスで使用する新しい文字列マネージャーへのポインターを返します。 |
Free | 文字列データ構造を解放するにはこのメソッドを呼び出します。 |
GetNilString | 空の文字列オブジェクトによって使用される CStringData オブジェクトへのポインターを返します。 |
Reallocate | 文字列データ構造を再割り当てするには、このメソッドを呼び出します。 |
解説
このインターフェイスは、MFC に依存しない文字列クラスによって使用されるメモリを管理します。たとえば、CSimpleStringT、CStringT、CFixedStringT などです。
このクラスを使用して、カスタム文字列クラスのカスタム メモリ マネージャーを実装することもできます。 詳細については、「CStringT を使用したメモリ管理」を参照してください。
要件
ヘッダー: atlsimpstr.h
IAtlStringMgr::Allocate
新しい文字列データ構造を割り当てます。
CStringData* Allocate(int nAllocLength,int nCharSize) throw();
パラメーター
nAllocLength
新しいメモリブロック内の文字数。
nCharSize
文字列マネージャーによって使用される文字型のサイズ (バイト単位)。
戻り値
新しく割り当てられたメモリ ブロックへのポインターを返します。
Note
例外をスローして、割り当ての失敗を通知しないでください。 代わりに、NULL を返すことで、失敗した割り当てを通知する必要があります。
解説
IAtlStringMgr::Free または IAtlStringMgr::ReAllocate を呼び出して、このメソッドによって割り当てられたメモリを解放します。
Note
使用例については、「CStringT を使用したメモリ管理」を参照してください。
IAtlStringMgr::Clone
CSimpleStringT
の別のインスタンスで使用する新しい文字列マネージャーへのポインターを返します。
IAtlStringMgr* Clone() throw();
戻り値
IAtlStringMgr
オブジェクトのコピーが返されます。
解説
通常、新しい文字列に文字列マネージャーが必要な場合に、フレームワークによって呼び出されます。 ほとんどの場合、this
ポインターが返されます。
ただし、メモリ マネージャーが CSimpleStringT
の複数のインスタンスでの使用をサポートしていない場合は、共有可能な文字列マネージャーへのポインターを返す必要があります。
Note
使用例については、「CStringT を使用したメモリ管理」を参照してください。
IAtlStringMgr::Free
文字列データ構造を解放します。
void Free(CStringData* pData) throw();
パラメーター
pData
解放するメモリ ブロックへのポインター。
解説
以前 Allocate または Reallocate によって割り当てられた、指定されたメモリ ブロックを解放します。
Note
使用例については、「CStringT を使用したメモリ管理」を参照してください。
IAtlStringMgr::GetNilString
空の文字列の文字列データ構造へのポインターを返します。
CStringData* GetNilString() throw();
戻り値
空の文字列を表すために使用される CStringData
オブジェクトへのポインター。
解説
空の文字列の表現を返すには、この関数を呼び出します。
Note
カスタム文字列マネージャーを実装する場合、この関数は失敗しないようにする必要があります。 これを確保するには、CNilStringData
のインスタンスを文字列マネージャー クラスに埋め込み、そのインスタンスへのポインターを返します。
Note
使用例については、「CStringT を使用したメモリ管理」を参照してください。
IAtlStringMgr::Reallocate
文字列データ構造を再割り当てします。
CStringData* Reallocate(
CStringData* pData,
int nAllocLength,
int nCharSize) throw();
パラメーター
pData
このメモリ マネージャーによって以前に割り当てられたメモリへのポインター。
nAllocLength
新しいメモリブロック内の文字数。
nCharSize
文字列マネージャーによって使用される文字型のサイズ (バイト単位)。
戻り値
新しく割り当てられたメモリ ブロックの先頭へのポインターを返します。
解説
pData によって指定された既存のメモリ ブロックのサイズを変更するには、この関数を呼び出します。
IAtlStringMgr::Free を呼び出すと、このメソッドによって割り当てられたメモリが解放されます。
Note
使用例については、「CStringT を使用したメモリ管理」を参照してください。