Metodo ISurrogate::FreeSurrogate (objidl.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 più server DLL in esecuzione nel processo surrogato. Quando FreeSurrogate viene chiamato, il metodo deve revocare correttamente tutte le factory di classe registrate nel surrogato e quindi causare l'uscita 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 presuppone 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 appropriata 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 senza thread. Inoltre, il surrogato non ha modo di essere informato quando tutti i server DLL sono andati. COM, tuttavia, può determinare quando tutti i server DLL sono stati scaricati e quindi chiameranno 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 | objidl.h (include ObjIdl.h) |