Uso del surrogato fornito dal sistema

Per usare il surrogato fornito dal sistema per il server DLL, registrare la DLL specificando una stringa vuota o NULL per il valore DllSurrogate nel Registro di sistema. Quando una richiesta di attivazione per un server DLL così designato arriva a COM, COM avvia il processo surrogato predefinito e la DLL richiesta (specificando il CLSID nella riga di comando di avvio internamente) allo stesso tempo per evitare una chiamata separata. Per informazioni sull'esecuzione di più server DLL in un processo surrogato, vedere Condivisione surrogata.

L'implementazione predefinita del processo surrogato è un server pseudo-COM in stile modello di threading misto. Quando più server DLL vengono caricati in un singolo processo surrogato, questo processo garantisce che ogni server DLL venga creata un'istanza usando il modello di threading specificato nel Registro di sistema per tale server. Tutti i server a thread libero caricati vivranno insieme nell'apartment multithreading, mentre ogni server a threading apartment risiederà in un apartment a thread singolo. Se un server DLL supporta entrambi i modelli di threading, COM sceglierà il multithreading.

Questo processo surrogato viene scritto in modo che COM gestisca sia lo scaricamento dei server DLL che la terminazione del processo surrogato.

Il surrogato fornito dal sistema funzionerà molto bene per la maggior parte degli sviluppatori, così come essere molto facile da usare. Tuttavia, gli sviluppatori con considerazioni speciali possono decidere che è necessario un surrogato personalizzato. Per altre informazioni, vedere Scrittura di un surrogato personalizzato.

Surrogati DLL