LocalReAlloc

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

This function changes the size or the attributes of a specified local memory object. The size can increase or decrease.

Syntax

HLOCAL LocalReAlloc(
  HLOCAL hMem,
  UINT uBytes,
  UINT fuFlags
);

Parameters

  • hMem
    [in] Handle to the local memory object to be reallocated.

    This handle is returned by either the LocalAlloc or the LocalReAlloc function.

  • uBytes
    [in] New size, in bytes, of the memory block.

    If fuFlags specifies the LMEM_MODIFY flag, this parameter is ignored.

  • fuFlags
    [in] Flag that specifies how to reallocate the local memory object.

    If the LMEM_MODIFY flag is specified, this parameter modifies the attributes of the memory object, and the uBytes parameter is ignored. Otherwise, this parameter controls the reallocation of the memory object.

    The following flag can be combined with the LMEM_MODIFY flag.

    Value Description

    LMEM_MOVEABLE

    You cannot combine LMEM_MOVEABLE with LMEM_MODIFY to change a fixed memory object into a movable one.

    If you do, the function returns an error.

    If this parameter does not specify LMEM_MODIFY, this parameter can be any combination of the LMEM_MOVEABLE and LMEM_ZEROINIT flags. The following table shows descriptions of these flags.

    Value Description

    LMEM_MOVEABLE

    Enables the memory allocation to move if it cannot be allocated in place.

    LMEM_ZEROINIT

    Causes the additional memory contents to be initialized to zero if the memory object is growing in size.

Return Value

A handle to the reallocated memory object indicates success. NULL indicates failure. To get extended error information, call GetLastError.

Remarks

If LocalReAlloc fails, the original memory is not freed and the original handle and pointer are still valid.

If LocalReAlloc reallocates a movable object, the return value is a handle to the memory object.

If LocalReAlloc reallocates a fixed object, the value of the handle returned is the address of the first byte of the memory block. To access the memory, a process can cast the return value to a pointer.

Requirements

Header winbase.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Memory Management Functions
LocalAlloc
LocalFree