LocalReAlloc 関数 (winbase.h)
指定したローカル メモリ オブジェクトのサイズまたは属性を変更します。 サイズは増減できます。
構文
DECLSPEC_ALLOCATOR HLOCAL LocalReAlloc(
[in] _Frees_ptr_opt_ HLOCAL hMem,
[in] SIZE_T uBytes,
[in] UINT uFlags
);
パラメーター
[in] hMem
再割り当てするローカル メモリ オブジェクトへのハンドル。 このハンドルは、LocalAlloc 関数または LocalReAlloc 関数によって返されます。
[in] uBytes
メモリ ブロックの新しいサイズ (バイト単位)。 uFlags でLMEM_MODIFYが指定されている場合、このパラメーターは無視されます。
[in] uFlags
再割り当てオプション。 LMEM_MODIFYを指定した場合、関数はメモリ オブジェクトの属性のみを変更します (uBytes パラメーターは無視されます)。それ以外の場合、関数はメモリ オブジェクトを再割り当てします。
必要に応じて、 LMEM_MODIFY と次の値を組み合わせることができます。
値 | 説明 |
---|---|
|
固定メモリまたは移動可能メモリを割り当てます。
メモリがロック されたLMEM_MOVEABLE メモリ ブロックまたは LMEM_FIXED メモリ ブロックであり、このフラグが指定されていない場合、メモリは所定の場所でのみ再割り当てできます。 |
このパラメーターで LMEM_MODIFYを指定しない場合は、次の値を使用できます。
値 | 説明 |
---|---|
|
メモリ オブジェクトのサイズが大きくなる場合は、追加のメモリコンテンツを 0 に初期化します。 |
戻り値
関数が成功した場合、戻り値は再割り当てされたメモリ オブジェクトへのハンドルです。
関数が失敗した場合は、返される値は NULL です。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
LocalReAlloc が失敗した場合、元のメモリは解放されず、元のハンドルとポインターは引き続き有効です。
LocalReAlloc が固定オブジェクトを再割り当てする場合、返されるハンドルの値はメモリ ブロックの最初のバイトのアドレスです。 メモリにアクセスするために、プロセスは単に戻り値をポインターにキャストできます。
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |