次の方法で共有


IAtlStringMgr クラス

このクラスは、CStringT メモリ マネージャーへのインターフェイスを表します。

構文

__interface IAtlStringMgr

メンバー

メソッド

Name 説明
Allocate 新しい文字列データ構造を割り当てるには、このメソッドを呼び出します。
複製 このメソッドを呼び出して、CSimpleStringT の別のインスタンスで使用する新しい文字列マネージャーへのポインターを返します。
Free 文字列データ構造を解放するにはこのメソッドを呼び出します。
GetNilString 空の文字列オブジェクトによって使用される CStringData オブジェクトへのポインターを返します。
Reallocate 文字列データ構造を再割り当てするには、このメソッドを呼び出します。

解説

このインターフェイスは、MFC に依存しない文字列クラスによって使用されるメモリを管理します。たとえば、CSimpleStringTCStringTCFixedStringT などです。

このクラスを使用して、カスタム文字列クラスのカスタム メモリ マネージャーを実装することもできます。 詳細については、「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 を使用したメモリ管理」を参照してください。

関連項目

階層図
ATL/MFC 共有クラス