Compartilhar via


Servidores In-Process

Se você implementar um aplicativo de servidor OLE como um servidor em processo — uma DLL em execução no espaço de processo do aplicativo de contêiner — em vez de como um servidor local — um EXE em execução em seu próprio espaço de processo — a comunicação entre contêiner e servidor será simplificada porque a comunicação entre os dois pode assumir a forma de chamadas de função normais. Chamadas de procedimento remoto não são necessárias porque os dois aplicativos são executados no mesmo espaço de processo. Como seria de esperar, os objetos que gerenciam o marshaling de parâmetros também são desnecessários, embora possam ser agregados dentro da DLL sem interferir na comunicação entre o contêiner e o servidor.

Quando um aplicativo de servidor OLE é implementado como um servidor em processo, um manipulador de objetos separado não é necessário porque o próprio servidor reside no espaço de processo do cliente. A principal diferença entre um servidor em processo e um manipulador de objetos é que o servidor é capaz de gerenciar o objeto em um estado em execução enquanto o manipulador não pode. Uma consequência dessa diferença é que um servidor deve fornecer uma interface do usuário para manipular o objeto em execução, enquanto um manipulador delega esse requisito ao servidor do objeto. Ao criar um servidor em processo, você pode agregar no manipulador padrão OLE, permitindo que ele trate tarefas básicas, como exibição, armazenamento e notificações, enquanto implementa apenas os serviços que o manipulador não fornece ou não implementa da maneira necessária.

Para obter mais informações, consulte os seguintes tópicos:

  • vantagens
  • desvantagens

documentos compostos