Функция CoRevokeMallocSpy (objbase.h)
Отменяет зарегистрированный объект IMallocSpy .
Синтаксис
HRESULT CoRevokeMallocSpy();
Возвращаемое значение
Эта функция может возвращать следующие значения.
Код возврата | Описание |
---|---|
|
Объект был успешно отозван. |
|
В настоящее время шпион не зарегистрирован. |
|
Шпион зарегистрирован, но есть незарегистрированные выделения (еще не освобождены), сделанные в то время как этот шпион был активен. |
Комментарии
Объект 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 |