IMalloc interface
Allocates, frees, and manages memory.
When to implement
Generally, 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.
Members
The IMalloc interface inherits from the IUnknown interface. IMalloc also has these types of members:
Methods
The IMalloc interface has these methods.
| Method | Description |
|---|---|
| Alloc |
Allocates a block of memory. |
| DidAlloc |
Determines whether this allocator was used to allocate the specified block of memory. |
| Free |
Frees a previously allocated block of memory. |
| GetSize |
Retrieves the size of a previously allocated block of memory. |
| HeapMinimize |
Minimizes the heap as much as possible by releasing unused memory to the operating system, coalescing adjacent free blocks, and committing free pages. |
| Realloc |
Changes the size of a previously allocated block of memory. |
Requirements
|
Minimum supported client |
Windows 2000 Professional [desktop apps only] |
|---|---|
|
Minimum supported server |
Windows 2000 Server [desktop apps only] |
|
Header |
|
|
IDL |
|
|
IID |
IID_IMalloc is defined as 00000002-0000-0000-C000-000000000046 |
See also