Servidores de automação
Automação torna possível para o seu aplicativo para manipular objetos implementados no outro aplicativo ou para expor objetos de modo que pode ser manipulados.Um servidor de automação é um aplicativo que expõe objetos programáveis (chamados objetos de automação) para outros aplicativos (chamado clientes de automação).Servidores de automação são chamados de componentes de automação.
Expor objetos de automação permite que clientes automatizar determinados procedimentos acessar diretamente objetos e disponibiliza a funcionalidade do servidor.Expor objetos dessa maneira é benéfico quando aplicativos fornecem funcionalidade que é útil para outros aplicativos.Por exemplo, um processador de texto pode expor sua funcionalidade de verificação ortográfica para que outros programas possam usá-lo.Exposição de objetos permite que fornecedores melhorar a funcionalidade de seus aplicativos usando a funcionalidade pronta de outros aplicativos.
Esses objetos de automação têm propriedades e métodos como interface externa.Propriedades são chamadas de atributos de objeto de automação.As propriedades são como os membros de dados de uma classe C++.Métodos são funções que funcionam em objetos de automação.Métodos são como as funções de membro público de uma classe C++.
Observação |
---|
Embora as propriedades são como membros de dados do C++, eles não estão diretamente acessíveis.Para fornecer acesso transparente, defina uma variável interna no objeto de automação com um par de funções de membro get/set para acessá-los. |
Expondo a funcionalidade do aplicativo através de uma interface comum e bem definida, automação torna possível a criação de aplicativos em um único geral linguagem de programação como o Microsoft Visual Basic em vez de em linguagens de macro variado, específicos do aplicativo.
Suporte para servidores de automação
Visual C++ e a estrutura do MFC fornecem amplo suporte para servidores de automação.Eles conduzem muita sobrecarga envolvida na criação de um servidor de automação, para que você pode concentrar seus esforços na funcionalidade do seu aplicativo.
Mecanismo principal da estrutura para oferecer suporte a automação é o mapa de expedição, um conjunto de macros que expande em declarações e chamadas necessárias para expor propriedades e métodos para OLE.Um mapa de expedição típica tem esta aparência:
BEGIN_DISPATCH_MAP(CMyServerDoc, COleServerDoc)
DISP_PROPERTY(CMyServerDoc, "Msg", m_strMsg, VT_BSTR)
DISP_FUNCTION(CMyServerDoc, "SetDirty", SetDirty, VT_EMPTY, VTS_I4)
END_DISPATCH_MAP()
A janela Propriedades e o modo de exibição de classe auxiliam na manutenção de mapas de despacho.Quando você adiciona um novo método ou propriedade para uma classe, o Visual C++ adiciona um correspondente DISP_FUNCTION ou DISP_PROPERTY macro com parâmetros indicando o nome de classe, nomes externos e internos dos tipos de dados ou propriedade e método.
O Add Class caixa de diálogo também simplifica a declaração de classes de automação e gerenciamento de suas operações e propriedades.Quando você usa a caixa de diálogo Adicionar classe para adicionar uma classe ao seu projeto, você pode especificar sua classe base.Se a classe base permite a automação, a caixa de diálogo Adicionar classe exibe controles usados para especificar se a nova classe deve oferecer suporte a automação, se ele é "OLE pode ser criado" (isto é, se objetos da classe podem ser criados em uma solicitação de um cliente COM) e o nome externo para o cliente COM usar.
O Add Class caixa de diálogo, em seguida, cria uma declaração de classe, incluindo macros apropriadas para o OLE recursos que você especificou.Ele também adiciona o código esqueleto para implementação de funções de membro da classe.
O Assistente de aplicativo do MFC simplifica as etapas envolvidas na obtenção de seu aplicativo de servidor de automação fora da Terra.Se você selecionar o automação caixa de seleção de Recursos avançados de página, o Assistente de aplicativo do MFC adiciona ao seu aplicativo InitInstance as chamadas necessárias para registrar os objetos de automação e executar seu aplicativo como um servidor de automação de função.