Partilhar via


Automação

A automação (anteriormente conhecida como automação OLE) possibilita que um aplicativo manipule objetos implementados em outro aplicativo ou exponha objetos para que possam ser manipulados.

Um servidor de automação é um aplicativo (um tipo de servidor COM) que expõe sua funcionalidade através de interfaces COM para outros aplicativos, chamados clientes de automação. A exposição permite que os clientes de automação automatizem determinadas funções, acessando diretamente objetos e usando os serviços que eles fornecem.

Os servidores e clientes de automação usam interfaces COM que são sempre derivadas de IDispatch e que recebem e retornam um conjunto específico de tipos de dados chamado tipos de automação. Você pode automatizar qualquer objeto que exponha uma interface de automação, fornecendo métodos e propriedades que você pode acessar de outros aplicativos. A automação está disponível para objetos OLE e COM. O objeto automatizado pode ser local ou remoto (em outra máquina acessível através de uma rede); Portanto, existem duas categorias de automação:

  • Automação (local).

  • Automação remota (através de uma rede, usando COM distribuído ou DCOM).

Expor objetos é benéfico quando os aplicativos fornecem funcionalidade útil para outros aplicativos. Por exemplo, um controle ActiveX é um tipo de servidor de automação; o aplicativo que hospeda o controle ActiveX é o cliente de automação desse controle.

Como outro exemplo, um processador de texto pode expor sua funcionalidade de verificação ortográfica a outros programas. A exposição de objetos permite que os fornecedores melhorem seus aplicativos usando a funcionalidade pronta de outros aplicativos. Desta forma, a Automação aplica alguns dos princípios da programação orientada a objetos, como a reutilização e o encapsulamento, ao nível das próprias aplicações.

Mais importante é o suporte que a Automação fornece aos usuários e provedores de soluções. Ao expor a funcionalidade do aplicativo por meio de uma interface comum e bem definida, a automação torna possível criar soluções abrangentes em uma única linguagem de programação geral, como o Microsoft Visual Basic, em vez de em diversas linguagens de macro específicas do aplicativo.

Muitos aplicativos comerciais, como o Microsoft Excel e o Microsoft Visual C++, permitem automatizar grande parte de suas funcionalidades. Por exemplo, no Visual C++, você pode escrever macros VBScript para automatizar compilações, aspetos de edição de código ou tarefas de depuração.

Passando parâmetros na automação

Uma dificuldade na criação de métodos de automação é ajudar a fornecer um mecanismo "seguro" uniforme para passar dados entre servidores de automação e clientes. A automação usa o tipo VARIANT para passar dados. O tipo VARIANT é uma união marcada. Ele tem um membro de dados para o valor (esta é uma união C++ anônima) e um membro de dados indicando o tipo de informação armazenada na união. O tipo VARIANT suporta vários tipos de dados padrão: inteiros de 2 e 4 bytes, números de vírgula flutuante de 4 e 8 bytes, cadeias de caracteres e valores booleanos. Além disso, suporta os tipos HRESULT (códigos de erro OLE), CURRENCY (um tipo numérico de ponto fixo) e DATE (data e hora absolutas), bem como ponteiros para IUnknown e IDispatch interfaces.

O tipo VARIANT é encapsulado na classe COleVariant . As classes CURRENCY e DATE de suporte são encapsuladas nas classes COleCurrency e COleDateTime .

Amostras de automação

  • AUTOCLIK Use este exemplo para aprender técnicas de automação e como base para aprender automação remota.

  • ACDUAL Adiciona interfaces duplas a um aplicativo de servidor de automação.

  • CALCDRIV Aplicação cliente de automação impulsionando MFCCALC.

  • INPROC Demonstra uma aplicação de servidor de automação In-Process.

  • IPDRIVE Aplicação cliente de automação impulsionando a INPROC.

  • MFCCALC Demonstra um aplicativo cliente de automação.

O que você quer saber mais sobre

O que queres fazer

Ver também

MFC COM