Udostępnij za pomocą


Automatyzacja

Automatyzacja (wcześniej znana jako automatyzacja OLE) umożliwia jednej aplikacji manipulowanie obiektami zaimplementowanym w innej aplikacji lub uwidacznianie obiektów w celu manipulowania nimi.

Serwer automatyzacji to aplikacja (typ serwera COM), która uwidacznia jego funkcjonalność za pośrednictwem interfejsów COM do innych aplikacji, nazywanych klientami usługi Automation. Ekspozycja umożliwia klientom usługi Automation automatyzowanie niektórych funkcji przez bezpośredni dostęp do obiektów i korzystanie z usług, które udostępniają.

Serwery automatyzacji i klienci używają interfejsów COM, które są zawsze pochodzące z IDispatch i przyjmują i zwracają określony zestaw typów danych nazywanych typami automatyzacji. Można zautomatyzować dowolny obiekt, który uwidacznia interfejs automatyzacji, udostępniając metody i właściwości, do których można uzyskać dostęp z innych aplikacji. Automatyzacja jest dostępna zarówno dla obiektów OLE, jak i COM. Obiekt zautomatyzowany może być lokalny lub zdalny (na innym komputerze dostępnym w sieci); w związku z tym istnieją dwie kategorie automatyzacji:

  • Automatyzacja (lokalna).

  • Automatyzacja zdalna (za pośrednictwem sieci przy użyciu modelu COM rozproszonego lub DCOM).

Uwidacznianie obiektów jest korzystne, gdy aplikacje zapewniają funkcjonalność przydatną dla innych aplikacji. Na przykład kontrolka ActiveX jest typem serwera automatyzacji; aplikacja hostująca kontrolkę ActiveX jest klientem automatyzacji tej kontrolki.

W innym przykładzie procesor tekstów może uwidocznić jego funkcje sprawdzania pisowni w innych programach. Narażenie obiektów umożliwia dostawcom ulepszanie aplikacji przy użyciu gotowych funkcji innych aplikacji. W ten sposób automatyzacja stosuje niektóre zasady programowania obiektowego, takie jak możliwość ponownego użycia i hermetyzacja, na poziomie samych aplikacji.

Co ważniejsze, usługa Automation obsługuje użytkowników i dostawców rozwiązań. Uwidaczniając funkcje aplikacji za pomocą wspólnego, dobrze zdefiniowanego interfejsu, usługa Automation umożliwia tworzenie kompleksowych rozwiązań w jednym ogólnym języku programowania, takim jak Microsoft Visual Basic, zamiast w różnych językach makr specyficznych dla aplikacji.

Wiele aplikacji komercyjnych, takich jak Microsoft Excel i Microsoft Visual C++, pozwala zautomatyzować większość ich funkcji. Na przykład w języku Visual C++można pisać makra VBScript w celu automatyzowania kompilacji, aspektów edytowania kodu lub debugowania zadań.

Przekazywanie parametrów w automatyzacji

Jedną z trudności w tworzeniu metod automatyzacji jest zapewnienie jednolitego "bezpiecznego" mechanizmu przekazywania danych między serwerami automatyzacji a klientami. Automatyzacja używa typu VARIANT do przekazywania danych. Typ VARIANT to unie oznaczona. Ma pole danych dla wartości (anonimowa unia w C++) oraz pole danych wskazujące typ informacji przechowywanych w unii. Typ VARIANT obsługuje wiele standardowych typów danych: 2- i 4-bajtowych liczb całkowitych, 4- i 8-bajtowych liczb zmiennoprzecinkowych, ciągów i wartości logicznych. Ponadto obsługuje typy HRESULT (kody błędów OLE), CURRENCY (typ liczbowy o stałym punkcie) i DATE (bezwzględna data i godzina), a także wskaźniki do IUnknown i IDispatch interfejsy.

Typ VARIANT jest hermetyzowany w klasie COleVariant . Pomocnicze klasy CURRENCY i DATE są hermetyzowane w klasach COleCurrency i COleDateTime .

Przykłady automatyzacji

  • AUTOCLIK Skorzystaj z tego przykładu, aby poznać techniki automatyzacji i jako podstawę do nauki automatyzacji zdalnej.

  • ACDUAL Dodaje interfejsy dualne do aplikacji serwera automatyzacji.

  • CALCDRIV Aplikacja kliencka automatyzacji kierująca MFCCALC.

  • INPROC Demonstruje aplikację serwera In-Process Automation.

  • USŁUGA IPDRIVE Aplikacja kliencka automatyzacji kierująca aplikacją INPROC.

  • MFCCALC Demonstruje aplikację kliencą usługi Automation.

Co chcesz dowiedzieć się więcej o

Co chcesz zrobić

Zobacz także

MFC COM