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) |