Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.