Serwery automatyzacji

Automatyzacja umożliwia aplikacji manipulowanie obiektami zaimplementowanym w innej aplikacji lub uwidacznianie obiektów w celu manipulowania nimi. Serwer usługi Automation to aplikacja, która uwidacznia programowalne obiekty (nazywane obiektami automatyzacji) do innych aplikacji (nazywanych klientami usługi Automation). Serwery automatyzacji są czasami nazywane składnikami automatyzacji.

Uwidacznianie obiektów automatyzacji umożliwia klientom automatyzowanie niektórych procedur przez bezpośredni dostęp do obiektów i funkcji udostępnianych przez serwer. Uwidacznianie obiektów w ten sposób jest korzystne, gdy aplikacje zapewniają funkcjonalność przydatną dla innych aplikacji. Na przykład procesor tekstów może uwidocznić jego funkcję sprawdzania pisowni, aby inne programy mogły z niego korzystać. Narażenie obiektów umożliwia dostawcom ulepszanie funkcjonalności aplikacji przy użyciu gotowych funkcji innych aplikacji.

Te obiekty automatyzacji mają właściwości i metody jako interfejs zewnętrzny. Właściwości są nazwane atrybutami obiektu automatyzacji. Właściwości są podobne do składowych danych klasy C++. Metody to funkcje, które działają na obiektach automatyzacji. Metody są podobne do publicznych funkcji składowych klasy C++.

Uwaga

Chociaż właściwości są podobne do elementów członkowskich danych języka C++, nie są one dostępne bezpośrednio. Aby zapewnić przezroczysty dostęp, skonfiguruj zmienną wewnętrzną w obiekcie automatyzacji z parą funkcji składowych get/set, aby uzyskać do nich dostęp.

Uwidaczniając funkcje aplikacji za pomocą wspólnego, dobrze zdefiniowanego interfejsu, usługa Automation umożliwia tworzenie aplikacji w jednym ogólnym języku programowania, na przykład Microsoft Visual Basic, zamiast w różnych językach makr specyficznych dla aplikacji.

Obsługa serwerów automatyzacji

Visual C++ i struktura MFC zapewniają rozbudowaną obsługę serwerów automatyzacji. Zajmują się one dużą częścią nakładu pracy związanego z tworzeniem serwera usługi Automation, dzięki czemu możesz skupić się na działaniach związanych z funkcjonalnością aplikacji.

Głównym mechanizmem struktury do obsługi automatyzacji jest mapa wysyłania, zestaw makr, które rozszerzają się w deklaracje i wywołania potrzebne do uwidocznienia metod i właściwości ole. Typowa mapa wysyłania wygląda następująco:

BEGIN_DISPATCH_MAP(CMyServerDoc, COleServerDoc)
DISP_PROPERTY(CMyServerDoc, "Msg", m_strMsg, VT_BSTR)
DISP_FUNCTION(CMyServerDoc, "SetDirty", SetDirty, VT_EMPTY, VTS_I4)
END_DISPATCH_MAP()

Kreator klas i widok klas pomagają w utrzymywaniu map wysyłki. Po dodaniu nowej metody lub właściwości do klasy program Visual Studio dodaje odpowiedni DISP_FUNCTIONDISP_PROPERTY lub makro z parametrami wskazującymi nazwę klasy, zewnętrzne i wewnętrzne nazwy metody lub właściwości oraz typy danych.

Okno dialogowe Dodawanie klasy upraszcza również deklarację klas automatyzacji oraz zarządzanie ich właściwościami i operacjami. W przypadku użycia okna dialogowego Dodawanie klasy w celu dodania klasy do projektu należy określić jej klasę bazową. Jeśli klasa podstawowa zezwala na automatyzację, okno dialogowe Dodawanie klasy wyświetla kontrolki używane do określenia, czy nowa klasa powinna obsługiwać automatyzację, czy jest to "creatable OLE" (czyli czy obiekty klasy można utworzyć na żądanie od klienta COM) i nazwę zewnętrzną klienta COM do użycia.

Okno dialogowe Dodawanie klasy tworzy deklarację klasy, w tym odpowiednie makra dla określonych funkcji OLE. Dodaje również kod szkieletu do implementacji funkcji składowych klasy.

Kreator aplikacji MFC upraszcza kroki związane z pobieraniem aplikacji serwera automatyzacji poza ziemią. Jeśli zaznaczysz pole wyboru Automatyzacja na stronie Funkcje zaawansowane, Kreator aplikacji MFC doda do funkcji aplikacji InitInstance wywołania wymagane do zarejestrowania obiektów usługi Automation i uruchomienia aplikacji jako serwera usługi Automation.

Co chcesz zrobić

Zobacz też

Automatyzacja
Kreator aplikacji MFC