Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This interface is a debugging interface that allows application developers to monitor (spy on) memory allocation, detect memory leaks, and simulate memory failure in calls to IMallocmethods.

Caution:
The IMallocSpyinterface is intended only for use in debugging application code under development. Do not ship this interface to retail customers of your application because it causes severe performance degradation and could conflict with user-installed software to produce unpredictable results.

When to Implement

Implement this interface to debug memory allocation during application development.

When to Use

When an implementation of IMallocSpyis registered with the CoRegisterMallocSpyfunction, COM calls the pair of IMallocSpymethods around the corresponding IMallocmethod. You would not make direct calls to IMallocSpymethods.

The call to the pre-method through the return from the corresponding post-method is guaranteed to be thread-safe in multithreaded operations.

Methods

The following table shows the methods for this interface in the order that the compiler calls the methods. Like all COM interfaces, this interface inherits the methods for the IUnknowninterface.

IUnknown method Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

IMallocSpy method Description

PreAlloc

Called before invoking IMalloc::Alloc, and may extend or modify the allocation to store debug information.

PostAlloc

Called after invoking IMalloc::Alloc.

PreFree

Called before invoking IMalloc::Free.

PostFree

Called after invoking IMalloc::Free.

PreRealloc

Called before invoking IMalloc::Realloc.

PostRealloc

Called after invoking IMalloc::Realloc.

PreGetSize

Called before invoking IMalloc::GetSize.

PostGetSize

Called after invoking IMalloc::GetSize.

PreDidAlloc

Called before invoking IMalloc::DidAlloc.

PostDidAlloc

Called after invoking IMalloc::DidAlloc.

PreHeapMinimize

Called before invoking IMalloc::HeapMinimize.

PostHeapMinimize

Called after invoking IMalloc::HeapMinimize.

Remarks

To determine whether the platform supports this interface, see Determining Supported COM APIs.

Requirements

Header objidl.h, objidl.idl
Library ole32.lib
Windows Embedded CE Windows CE 3.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also