Revokes a registered IMallocSpy object.

HRESULT CoRevokeMallocSpy();

Return Values


Indicates the IMallocSpy object is successfully revoked.


Indicates no spy is currently registered.


Indicates a spy is registered but there are outstanding allocations (not yet freed) made while this spy was active.


The IMallocSpy object is released when it is revoked. This release corresponds to the call to IUnknown::AddRef in the implementation of the QueryInterface function by the CoRegisterMallocSpy function. The implementation of the IMallocSpy interface should then do any appropriate clean-up.

If the return code is E_ACCESSDENIED, there are still outstanding allocations that were done while the spy was active. The registered spy cannot be revoked at this time because it may have attached arbitrary headers and/or trailers to these allocations which only the spy knows about. Only the spy's PreFree (or PreRealloc) method knows how to account for these headers and trailers. Before returning E_ACCESSDENIED, CoRevokeMallocSpy notes internally that a revoke is pending. When the outstanding allocations have been freed, the revoke proceeds automatically, releasing the IMallocSpy object. This means that it is necessary to call CoRevokeMallocSpy only once for each call to CoRegisterMallocSpy, even if E_ACCESSDENIED is returned.

See Also

IMallocSpy, CoRegisterMallocSpy, CoGetMalloc

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database