Compartir a través de


Función CoRevokeMallocSpy (objbase.h)

Revoca un objeto IMallocSpy registrado.

Sintaxis

HRESULT CoRevokeMallocSpy();

Valor devuelto

Esta función puede devolver los valores siguientes.

Código devuelto Descripción
S_OK
El objeto se revocó correctamente.
CO_E_OBJNOTREG
Actualmente no hay espía registrado.
E_ACCESSDENIED
Un espía está registrado pero hay asignaciones pendientes (aún no liberados) hechas mientras este espía estaba activo.

Comentarios

El objeto IMallocSpy se libera cuando se revoca. Esta versión corresponde a la llamada a IUnknown::AddRef en la implementación de la función QueryInterface por la función CoRegisterMallocSpy . La implementación de la interfaz IMallocSpy debe realizar cualquier limpieza adecuada.

Si el código de retorno es E_ACCESSDENIED, todavía hay asignaciones pendientes que se realizaron mientras el espía estaba activo. En este caso, el espía registrado no se puede revocar en este momento porque puede haber adjuntado encabezados arbitrarios o finalizadores a estas asignaciones que solo el espía conoce. Solo el método PreFree (o PreRealloc) del espía sabe cómo tener en cuenta estos encabezados y finalizadores. Antes de devolver E_ACCESSDENIED, CoRevokeMallocSpy señala internamente que una revocación está pendiente. Cuando se liberan las asignaciones pendientes, la revocación continúa automáticamente, liberando el objeto IMallocSpy . Por lo tanto, es necesario llamar a CoRevokeMallocSpy solo una vez para cada llamada a CoRegisterMallocSpy, incluso si se devuelve E_ACCESSDENIED.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado objbase.h
Library Ole32.lib
Archivo DLL Ole32.dll

Consulte también

CoRegisterMallocSpy

IMallocSpy