Condividi tramite


Metodo ISurrogate::FreeSurrogate (objidlbase.h)

Scarica un server DLL.

Sintassi

HRESULT FreeSurrogate();

Valore restituito

Questo metodo può restituire i valori restituiti standard E_UNEXPECTED, E_FAIL e S_OK.

Commenti

COM chiama FreeSurrogate quando non sono presenti altri server DLL in esecuzione nel processo surrogato. Quando viene chiamato FreeSurrogate , il metodo deve revocare correttamente tutte le class factory registrate nel surrogato e quindi causare la chiusura del processo surrogato.

I processi surrogati devono chiamare periodicamente la funzione CoFreeUnusedLibraries per scaricare i server DLL che non sono più in uso. Il processo surrogato assume questa responsabilità, che normalmente sarebbe responsabilità del cliente. CoFreeUnusedLibraries chiama la funzione DllCanUnloadNow in qualsiasi server DLL caricato. Poiché CoFreeUnusedLibraries dipende dall'esistenza e dall'implementazione corretta di DllCanUnloadNow nei server DLL, non è garantito scaricare tutti i server DLL che devono essere scaricati, non tutti i server implementano DllCanUnloadNow e questa funzione non è affidabile per le DLL a thread libero. Inoltre, il surrogato non ha modo di essere informato quando tutti i server DLL sono scomparsi. COM, tuttavia, può determinare quando tutti i server DLL sono stati scaricati e chiamerà quindi il metodo FreeSurrogate .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione objidlbase.h (include ObjIdl.h)

Vedi anche

DllSurrogate

ISurrogate

Scrittura di un surrogato personalizzato