Condividi tramite


Automazione

L'automazione (in precedenza nota come automazione OLE) consente a un'applicazione di modificare gli oggetti implementati in un'altra applicazione o di esporre oggetti in modo che possano essere modificati.

Un server di automazione è un'applicazione (un tipo di server COM) che ne espone le funzionalità tramite interfacce COM ad altre applicazioni, denominate client di automazione. L'esposizione consente ai client di Automazione di automatizzare determinate funzioni accedendo direttamente agli oggetti e usando i servizi forniti.

I server di automazione e i client usano interfacce COM che sono sempre derivate da IDispatch e accettano e restituiscono un set specifico di tipi di dati denominati tipi di automazione. È possibile automatizzare qualsiasi oggetto che espone un'interfaccia di Automazione, fornendo metodi e proprietà a cui è possibile accedere da altre applicazioni. L'automazione è disponibile sia per gli oggetti OLE che per gli oggetti COM. L'oggetto automatizzato potrebbe essere locale o remoto (in un altro computer accessibile attraverso una rete); di conseguenza, esistono due categorie di automazione:

  • Automazione (locale).

  • Automazione remota (tramite una rete, tramite DISTRIBUTED COM o DCOM).

L'esposizione di oggetti è utile quando le applicazioni forniscono funzionalità utili per altre applicazioni. Ad esempio, un controllo ActiveX è un tipo di server di automazione; l'applicazione che ospita il controllo ActiveX è il client di automazione di tale controllo.

Come un altro esempio, un elaboratore di testo potrebbe esporre la sua funzionalità di controllo ortografico ad altri programmi. L'esposizione di oggetti consente ai fornitori di migliorare le applicazioni usando la funzionalità pronta per le altre applicazioni. In questo modo, Automazione applica alcuni dei principi della programmazione orientata agli oggetti, ad esempio riutilizzabilità e incapsulamento, a livello di applicazioni stesse.

Più importante è il supporto che l'Automazione offre agli utenti e ai fornitori di soluzioni. Esponendo le funzionalità dell'applicazione tramite un'interfaccia comune ben definita, Automazione consente di creare soluzioni complete in un unico linguaggio di programmazione generale, ad esempio Microsoft Visual Basic, anziché in linguaggi macro specifici dell'applicazione diversi.

Molte applicazioni commerciali, ad esempio Microsoft Excel e Microsoft Visual C++, consentono di automatizzare gran parte delle funzionalità. In Visual C++, ad esempio, è possibile scrivere macro VBScript per automatizzare compilazioni, aspetti della modifica del codice o attività di debug.

Passaggio di parametri in Automazione

Una difficoltà nella creazione di metodi di automazione consiste nell'offrire un meccanismo uniforme "sicuro" per passare i dati tra server di automazione e client. L'automazione usa il tipo VARIANT per passare i dati. Il tipo VARIANT è un'unione con tag. Ha un membro dati per il valore (si tratta di un'unione C++ anonima) e un membro dati che indica il tipo di informazioni archiviate nell'unione. Il tipo VARIANT supporta diversi tipi di dati standard: numeri interi a 2 e 4 byte, numeri a virgola mobile a 4 e 8 byte, stringhe e valori booleani. Supporta inoltre i tipi HRESULT (codici di errore OLE), CURRENCY (un tipo numerico a virgola fissa) e i tipi DATE (data e ora assoluti), nonché puntatori a IUnknown e IDispatch interfacce.

Il tipo VARIANT è incapsulato nella classe COleVariant . Le classi CURRENCY e DATE di supporto vengono incapsulate nelle classi COleCurrency e COleDateTime .

Esempi di automazione

  • AUTOCLIK Usare questo esempio per apprendere le tecniche di automazione e come base per l'apprendimento di Automazione remota.

  • ACDUAL Aggiunge interfacce doppie a un'applicazione server di Automazione.

  • CALCDRIV Applicazione client di automazione che guida MFCCALC.

  • INPROC Illustra un'applicazione server di automazione In-Process.

  • IPDRIVE Applicazione client di automazione che guida INPROC.

  • MFCCALC Illustra un'applicazione client di Automazione.

Cosa vuoi sapere di più su

Operazione da eseguire

Vedere anche

MFC COM