Server in-process

Se si implementa un'applicazione server OLE come server in-process, una DLL in esecuzione nello spazio di elaborazione dell'applicazione contenitore, anziché come server locale, un exe in esecuzione nello spazio di processo, la comunicazione tra contenitore e server è semplificata perché la comunicazione tra i due può assumere la forma di normali chiamate di funzione. Le chiamate di procedura remota non sono necessarie perché le due applicazioni vengono eseguite nello stesso spazio di processo. Come previsto, gli oggetti che gestiscono il marshalling dei parametri non sono necessari, anche se possono essere aggregati all'interno della DLL senza interferire con la comunicazione tra contenitore e server.

Quando un'applicazione server OLE viene implementata come server in-process, non è necessario un gestore di oggetti separato perché il server stesso si trova nello spazio di elaborazione del client. La differenza principale tra un server in-process e un gestore oggetti è che il server è in grado di gestire l'oggetto in uno stato di esecuzione mentre il gestore non può. Una conseguenza di questa differenza è che un server deve fornire un'interfaccia utente per la modifica dell'oggetto in esecuzione, mentre un gestore delega questo requisito al server dell'oggetto. Nella creazione di un server in-process è possibile aggregare nel gestore predefinito OLE, consentendogli di gestire le attività di base, ad esempio visualizzazione, archiviazione e notifiche, mentre si implementano solo i servizi che il gestore non fornisce o non implementa nel modo necessario.

Per ulteriori informazioni, vedi gli argomenti seguenti:

Documenti composti