Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.