Compartilhar 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 por meio de interfaces COM para outros aplicativos, chamados de clientes de Automação. A exposição permite que os clientes de Automação automação automatizem determinadas funções acessando diretamente objetos e usando os serviços que eles fornecem.

Servidores e clientes de automação usam interfaces COM que são sempre derivadas e IDispatch usam e retornam um conjunto específico de tipos de dados chamados 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 outro computador acessível em uma rede); portanto, há duas categorias de automação:

  • Automação (local).

  • Automação Remota (em uma rede, usando COM distribuído ou DCOM).

Expor objetos é benéfico quando 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 palavras pode expor sua funcionalidade de verificação ortográfica para outros programas. A exposição de objetos permite que os fornecedores melhorem seus aplicativos usando a funcionalidade pronta de outros aplicativos. Dessa forma, a Automação aplica alguns dos princípios da programação orientada a objetos, como reutilização e encapsulamento, no nível dos próprios aplicativos.

Mais importante é o suporte que a Automação fornece aos usuários e aos provedores de solução. Ao expor a funcionalidade do aplicativo por meio de uma interface comum e bem definida, a Automação possibilita 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 builds, aspectos da 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 que indica o tipo de informações armazenadas na união. O tipo VARIANT dá suporte a vários tipos de dados padrão: números inteiros de 2 e 4 bytes, números de ponto flutuante de 4 e 8 bytes, cadeias de caracteres e valores boolianos. Além disso, ele dá suporte aos 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 .

Exemplos de automação

  • AUTOCLIK Use este exemplo para aprender técnicas de Automação e como base para aprender a Automação Remota.

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

  • CALCDRIV Aplicativo cliente de automação que conduz MFCCALC.

  • INPROC Demonstra um aplicativo de servidor de Automação In-Process.

  • IPDRIVE Aplicativo cliente de automação que conduz o INPROC.

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

O que você quer saber mais sobre

O que você quer fazer

Consulte também

MFC COM