Share via


Automatisering

Automatisering (voorheen OLE Automation genoemd) maakt het mogelijk voor één toepassing om objecten te bewerken die in een andere toepassing zijn geïmplementeerd, of om objecten beschikbaar te maken, zodat ze kunnen worden bewerkt.

Een Automation-server is een toepassing (een type COM-server) die de functionaliteit via COM-interfaces beschikbaar maakt voor andere toepassingen, automatiseringsclients genoemd. Dankzij de blootstelling kunnen Automation-clients bepaalde functies automatiseren door rechtstreeks toegang te krijgen tot objecten en de services te gebruiken die ze leveren.

Automatiseringsservers en -clients maken gebruik van COM-interfaces die altijd zijn afgeleid van IDispatch en overnemen en retourneren van een specifieke set gegevenstypen, automatiseringstypen genoemd. U kunt elk object automatiseren dat een Automation-interface beschikbaar maakt en methoden en eigenschappen biedt waartoe u toegang hebt vanuit andere toepassingen. Automatisering is beschikbaar voor ZOWEL OLE- als COM-objecten. Het geautomatiseerde object kan lokaal of extern zijn (op een andere computer toegankelijk via een netwerk); daarom zijn er twee automatiseringscategorieën:

  • Automatisering (lokaal).

  • Externe automatisering (via een netwerk, met behulp van gedistribueerde COM of DCOM).

Het beschikbaar maken van objecten is nuttig wanneer toepassingen functionaliteit bieden die nuttig is voor andere toepassingen. Een ActiveX-besturingselement is bijvoorbeeld een type Automation-server; de toepassing die als host fungeert voor het ActiveX-besturingselement, is de automatiseringsclient van dat besturingselement.

Een andere voorbeeld: een tekstverwerker kan de functionaliteit voor spellingcontrole beschikbaar maken voor andere programma's. Blootstelling aan objecten stelt leveranciers in staat hun toepassingen te verbeteren met behulp van de kant-en-klare functionaliteit van andere toepassingen. Op deze manier past Automation enkele principes van objectgeoriënteerd programmeren, zoals hergebruik en inkapseling, toe op het niveau van toepassingen zelf.

Belangrijker is de ondersteuning die Automation biedt aan gebruikers en oplossingsproviders. Door toepassingsfunctionaliteit beschikbaar te maken via een gemeenschappelijke, goed gedefinieerde interface, maakt Automation het mogelijk om uitgebreide oplossingen te bouwen in één algemene programmeertaal, zoals Microsoft Visual Basic, in plaats van in diverse toepassingsspecifieke macrotalen.

In veel commerciële toepassingen, zoals Microsoft Excel en Microsoft Visual C++, kunt u veel van hun functionaliteit automatiseren. In Visual C++ kunt u bijvoorbeeld VBScript-macro's schrijven om builds, aspecten van het bewerken van code of foutopsporingstaken te automatiseren.

Parameters doorgeven in Automation

Een probleem bij het maken van Automatiseringsmethoden is het bieden van een uniform 'veilig' mechanisme om gegevens door te geven tussen automatiseringsservers en clients. Automation gebruikt het VARIANT-type om gegevens door te geven. Het varianttype is een gelabelde samenvoeging. Het heeft een gegevenslid voor de waarde (dit is een anonieme C++-samenvoeging) en een gegevenslid dat het type informatie aangeeft dat is opgeslagen in de samenvoeging. Het VARIANT-type ondersteunt een aantal standaardgegevenstypen: gehele getallen van 2 en 4 bytes, 4- en 8-bytes, drijvendekommanummers, tekenreeksen en Booleaanse waarden. Daarnaast ondersteunt het de HRESULT (OLE-foutcodes), VALUTA (een numeriek type met vast punt) en DATUM (absolute datum en tijd); evenals aanwijzers naar IUnknown en IDispatch interfaces.

Het VARIANT-type wordt ingekapseld in de klasse COleVariant . De ondersteunende currency- en DATE-klassen worden ingekapseld in de klassen COleCurrency en COleDateTime .

Automation-voorbeelden

  • AUTOCLIK Gebruik dit voorbeeld om automatiseringstechnieken te leren en als basis voor het leren van externe automatisering.

  • ACDUAL Hiermee voegt u dubbele interfaces toe aan een Automation-servertoepassing.

  • CALCDRIV Automationclienttoepassing die MFCCALC aanstuurt.

  • INPROC Demonstreert een In-Process Automation-servertoepassing.

  • IPDRIVE Automatiserings-klantapplicatie voor de aansturing van INPROC.

  • MFCCALC Demonstreert een Automation-clienttoepassing.

Wat wilt u meer weten over

Wat u wilt doen?

Zie ook

MFC COM