CoRevokeMallocSpy 函数 (objbase.h)
撤销已注册的 IMallocSpy 对象。
语法
HRESULT CoRevokeMallocSpy();
返回值
此函数可以返回以下值。
返回代码 | 说明 |
---|---|
|
已成功撤销对象。 |
|
目前没有间谍注册。 |
|
间谍已注册,但有未完成的分配 (尚未释放) ,而这个间谍活动。 |
注解
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 |