Export (0) Print
Expand All
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.


Windows Mobile 6.5
A version of this page is also available for

This function attempts to compact a specified heap by coalescing adjacent free blocks of memory and decommitting large free blocks of memory.

UINT HeapCompact(
  HANDLE hHeap,
  DWORD dwFlags


[in] Handle to the heap to be compacted.

This parameter is a handle returned by the HeapCreate or GetProcessHeap function.


[in] Heap access options. The possible value, HEAP_NO_SERIALIZE, is ignored. The heap is always serialized.

The size of the largest committed free block in the heap, in bytes, indicates success. Zero indicates failure. To get extended error information, call GetLastError.

In the unlikely case that there is no space available in the heap, the function return value is zero, and GetLastError returns the value NO_ERROR.

There is no guarantee that an application can successfully allocate a memory block of the size returned by HeapCompact. Other threads or the commit threshold might prevent such an allocation.

Windows Embedded CEWindows CE 5.0 and later
Windows MobileWindows Mobile Version 5.0 and later

Community Additions

© 2015 Microsoft