Condividi tramite


Funzione CoRevokeMallocSpy (objbase.h)

Revoca un oggetto IMallocSpy registrato.

Sintassi

HRESULT CoRevokeMallocSpy();

Valore restituito

Questa funzione può restituire i valori seguenti.

Codice restituito Descrizione
S_OK
L'oggetto è stato revocato correttamente.
CO_E_OBJNOTREG
Nessuna spia è attualmente registrata.
E_ACCESSDENIED
Una spia è registrata ma ci sono allocazioni in sospeso (non ancora liberato) fatto mentre questa spia era attiva.

Commenti

L'oggetto IMallocSpy viene rilasciato quando viene revocato. Questa versione corrisponde alla chiamata a IUnknown::AddRef nell'implementazione della funzione QueryInterface dalla funzione CoRegisterMallocSpy . L'implementazione dell'interfaccia IMallocSpy deve quindi eseguire qualsiasi pulizia appropriata.

Se il codice restituito è E_ACCESSDENIED, ci sono ancora allocazioni in sospeso che sono state effettuate mentre la spia era attiva. In questo caso, la spia registrata non può essere revocata in questo momento perché potrebbe avere collegato intestazioni arbitrarie e/o trailer a queste allocazioni che solo la spia conosce. Solo il metodo PreFree (o PreRealloc) della spia sa come tenere conto di queste intestazioni e trailer. Prima di restituire E_ACCESSDENIED, CoRevokeMallocSpy annota internamente che un revoca è in sospeso. Quando le allocazioni in sospeso sono state liberate, il revoca procede automaticamente, rilasciando l'oggetto IMallocSpy . Pertanto, è necessario chiamare CoRevokeMallocSpy una sola volta per ogni chiamata a CoRegisterMallocSpy, anche se viene restituito E_ACCESSDENIED.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione objbase.h
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche

CoRegisterMallocSpy

IMallocSpy