Manipuladores de objetos
Se um aplicativo de servidor OLE for um servidor local, o que significa que ele é executado em seu próprio espaço de processo, a comunicação entre o contêiner e o servidor deverá ocorrer além dos limites do processo. Como esse processo é caro, o OLE depende de um objeto substituto carregado no espaço de processo do contêiner para agir em nome de um aplicativo de servidor local. Esse objeto substituto, conhecido como manipulador de objetos, atende a solicitações de contêiner que não exigem a atenção do aplicativo do servidor, como solicitações de desenho. Quando um contêiner solicita algo que o manipulador de objeto não pode fornecer, o manipulador se comunica com o aplicativo de servidor usando o mecanismo de comunicação fora do processo do COM.
Um manipulador de objeto é exclusivo para uma classe de objeto. Quando você cria uma instância de um manipulador para uma classe, você não pode usá-lo para outra. Quando usado para um documento composto, o manipulador de objetos implementa as estruturas de dados do lado do contêiner quando objetos de uma classe específica são acessados remotamente.
OLE fornece um manipulador de objeto padrão que os aplicativos de servidor local podem usar. Para aplicativos que exigem comportamentos especiais, os desenvolvedores podem implementar um manipulador personalizado que substitui o manipulador padrão ou o usa para fornecer determinados comportamentos padrão.
Um manipulador de objetos é uma DLL que contém vários componentes interagindo. Esses componentes incluem partes remotas para gerenciar a comunicação entre o manipulador e seu aplicativo de servidor, um cache para armazenar os dados de um objeto, juntamente com informações sobre como esses dados devem ser formatados e exibidos e um objeto de controle que coordena as atividades dos outros componentes da DLL. Além disso, se um objeto for um link, a DLL também incluirá um componente de vinculação, ou objeto vinculado, que controla o nome e o local da origem do link.
O cache contém dados e informações de apresentação suficientes para que o manipulador exiba um objeto carregado, mas não em execução, em seu contêiner. OLE fornece uma implementação do cache usado pelo manipulador de objeto padrão do OLE e o objeto link. O cache armazena dados em formatos necessários para que o manipulador de objetos satisfaça solicitações de desenho de contêiner. Quando os dados de um objeto são alterados, o objeto envia uma notificação ao cache para que uma atualização possa ocorrer. Para obter mais informações sobre o cache, consulte Exibir cache.
Para obter mais informações, consulte o tópico a seguir:
Tópicos relacionados