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 MODELU 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 otagowany związek. Zawiera element członkowski danych dla wartości (jest to anonimowy związek C++) i element członkowski danych wskazujący 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 Użyj tego przykładu, aby poznać techniki automatyzacji i jako podstawy do nauki automatyzacji zdalnej.

  • ACDUAL dodaje podwójne interfejsy do aplikacji serwera automatyzacji.

  • Aplikacja kliencka CALCDRIV Automation kierująca MFCCALC.

  • INPROC demonstruje aplikację serwera automatyzacji w procesie.

  • Aplikacja kliencka usługi IPDRIVE Automation kierująca aplikacją INPROC.

  • MFCCALC demonstruje aplikację kliencą automatyzacji.

Co chcesz dowiedzieć się więcej o

Co chcesz zrobić

Zobacz też

MFC COM