Поделиться через


Функция CoRevokeMallocSpy (objbase.h)

Отменяет зарегистрированный объект IMallocSpy .

Синтаксис

HRESULT CoRevokeMallocSpy();

Возвращаемое значение

Эта функция может возвращать следующие значения.

Код возврата Описание
S_OK
Объект был успешно отозван.
CO_E_OBJNOTREG
В настоящее время шпион не зарегистрирован.
E_ACCESSDENIED
Шпион зарегистрирован, но есть незарегистрированные выделения (еще не освобождены), сделанные в то время как этот шпион был активен.

Комментарии

Объект IMallocSpy освобождается при его отмене. Этот выпуск соответствует вызову IUnknown::AddRef в реализации функции QueryInterface функцией CoRegisterMallocSpy . Реализация интерфейса IMallocSpy должна выполнить любую соответствующую очистку.

Если код возврата E_ACCESSDENIED, все еще остаются невыполненные выделения, которые были сделаны, когда шпион был активен. В этом случае зарегистрированный шпион не может быть отозван в настоящее время, потому что он, возможно, прикрепил произвольные заголовки и /или трейлеры к этим выделениям, о которых знает только шпион. Только метод PreFree (или PreRealloc) шпиона знает, как учитывать эти заголовки и трейлеры. Перед возвращением E_ACCESSDENIED , CoRevokeMallocSpy внутренне отмечает, что отзыв ожидается. После освобождения невыполненных выделений отмена выполняется автоматически, освобождая объект IMallocSpy . Таким образом, необходимо вызывать CoRevokeMallocSpy только один раз для каждого вызова CoRegisterMallocSpy, даже если возвращается E_ACCESSDENIED.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header objbase.h
Библиотека Ole32.lib
DLL Ole32.dll

См. также раздел

CoRegisterMallocSpy

IMallocSpy