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 eles 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 automatizem determinadas funções acessando diretamente os objetos e usando os serviços que eles fornecem.

Servidores e clientes de Automação usam interfaces COM que sempre são derivadas de IDispatch e usam e retornam um conjunto específico de tipos de dados chamados de tipos de Automação. Você pode automatizar qualquer objeto que exponha uma interface de Automação, fornecendo métodos e propriedades que 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 por meio de uma rede), portanto, há duas categorias de automação:

  • Automação (local).

  • Automação Remota (por meio 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.

Em outro exemplo, um processador de palavras pode expor sua funcionalidade de verificação ortográfica a outros programas. A exposição de objetos permite que os fornecedores aprimorem os respectivos 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.

O mais importante é o suporte que a Automação dá aos usuários e aos provedores de soluções. 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 só 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 da criação de métodos de Automação é ajudar a fornecer um mecanismo "seguro" uniforme para passar dados entre servidores e clientes de automação. 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 (trata-se de 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: 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 as interfaces IUnknown e IDispatch.

O tipo VARIANT é encapsulado na classe COleVariant. As classes CURRENCY e DATE com 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 sobre a Automação Remota.

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

  • CALCDRIV Aplicativo cliente de Automação que executa MFCCALC.

  • INPROC Demonstra um aplicativo de servidor de Automação em Processo.

  • IPDRIVE Aplicativo cliente de Automação que executa INPROC.

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

O que mais você deseja saber?

O que você deseja fazer

Confira também

MFC COM