IMalloc

Allocates, frees, and manages memory.

When to Implement

In general, you should not implement IMalloc, instead using the COM implementation, which is guaranteed to be thread-safe in managing task memory. You get a pointer to the COM task allocator object's IMalloc through a call to the CoGetMalloc function.

When to Use

Call the methods of IMalloc to allocate and manage memory. The COM libraries and object handlers also call the IMalloc methods to manage memory. Object handlers should call CoGetMalloc to get a pointer to the IMalloc implementation on the task allocator object, and use the implementation of those methods to manage task memory.

The IMalloc methods Alloc, Free, and Realloc are similar to the C library functions malloc, free, and realloc. For debugging, refer to the functions CoRegisterMallocSpy and CoRevokeMallocSpy.

Methods in Vtable Order

IUnknown Methods Description
QueryInterface Returns pointers to supported interfaces.
AddRef Increments the reference count.
Release Decrements the reference count.

IMalloc Methods Description
Alloc Allocates a block of memory.
Realloc Changes the size of a previously allocated block of memory.
Free Frees a previously allocated block of memory.
GetSize Returns the size in bytes of a previously allocated block of memory.
DidAlloc Determines if this instance of IMalloc was used to allocate the specified block of memory.
HeapMinimize Minimizes the heap by releasing unused memory to the operating system.

QuickInfo

  Windows NT: Use version 3.1 or later.
  Windows: Use Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in objidl.h.

See Also

CoGetMalloc, IMallocSpy, CoRegisterMallocSpy, CoRevokeMallocSpy