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 |
---|---|
|
El objeto se revocó correctamente. |
|
Actualmente no hay espía registrado. |
|
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 |