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