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)

Vedi anche

DllSurrogate

ISurrogate

Scrittura di un surrogato personalizzato