CoRevokeMallocSpy 函数 (objbase.h)

撤销已注册的 IMallocSpy 对象。

语法

HRESULT CoRevokeMallocSpy();

返回值

此函数可以返回以下值。

返回代码 说明
S_OK
已成功撤销对象。
CO_E_OBJNOTREG
目前没有间谍注册。
E_ACCESSDENIED
间谍已注册,但有未完成的分配 (尚未释放) ,而这个间谍活动。

注解

IMallocSpy 对象在撤销时释放。 此版本对应于 CoRegisterMallocSpy 函数在 QueryInterface 函数实现中对 IUnknown::AddRef 的调用。 然后, IMallocSpy 接口的实现应执行任何适当的清理。

如果返回代码E_ACCESSDENIED,则在间谍处于活动状态时,仍有未完成的分配。 在这种情况下,注册的间谍此时无法撤销,因为它可能已将任意标头和/或尾部附加到这些只有间谍知道的分配。 只有间谍的 PreFree (或 PreRealloc) 方法知道如何解释这些标头和尾部。 在返回E_ACCESSDENIED之前, CoRevokeMallocSpy 在内部指出撤销挂起。 释放未完成的分配后,撤销会自动进行,释放 IMallocSpy 对象。 因此,即使返回了E_ACCESSDENIED,每次调用 CoRegisterMallocSpy 也只需要调用 CoRevokeMallocSpy 一次。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 objbase.h
Library Ole32.lib
DLL Ole32.dll

请参阅

CoRegisterMallocSpy

IMallocSpy