Automatisierung
Automation (früher: OLE-Automatisierung) ermöglicht es einer Anwendung, die in einer anderen Anwendung implementierten Objekte zu bearbeiten oder Objekte verfügbar zu machen, damit sie bearbeitet werden können.
Ein Automatisierungsserver ist eine Anwendung (ein COM-Servertyp), die seine Funktionalität über COM-Schnittstellen für andere Anwendungen, sogenannte Automatisierungsclients, zur Verfügung stellt. Dank der Verfügbarkeit können Automatisierungsclients bestimmte Funktionen automatisieren, indem direkt auf Objekte zugegriffen und die angebotenen Dienste verwendet werden.
Automatisierungsserver und -clients verwenden COM-Schnittstellen, die immer von IDispatch
abgeleitet sind und einen bestimmten Satz von Datentypen, genannt Automatisierungstypen, akzeptieren und zurückgeben. Sie können jedes Objekt automatisieren, das eine Automatisierungsschnittstelle verfügbar macht, die Methoden und Eigenschaften bereitstellt, auf die Sie von anderen Programmen zugreifen können. Automation ist für OLE und COM-Objekte verfügbar. Das automatisierte Objekt kann lokal oder remote (sprich, auf einem anderen Computer, auf den Sie über ein Netzwerk zugreifen können) sein. Es gibt somit zwei Kategorien der Automatisierung:
Automatisierung (lokal).
Remoteautomatisierung (über ein Netzwerk mithilfe von Distributed COM, oder DCOM).
Das Verfügbarmachen von Objekten ist nützlich, wenn Anwendungen Funktionen bereitstellen, die hilfreich für andere Anwendungen sind. Ein ActiveX-Steuerelement ist beispielsweise ein Automatisierungsservertyp; die Anwendung, in der das ActiveX-Steuerelement gehostet wird, ist der Automatisierungsclient dieses Steuerelements.
Ein weiteres Beispiel ist ein Textverarbeitungsprogramm, das seine Funktion zur Rechtschreibprüfung für andere Programme zur Verfügung stellt. Das Verfügbarmachen von Objekten ermöglicht es den Herstellern, ihre Anwendungen zu verbessern, indem sie die vordefinierten Funktionen von anderen Anwendungen nutzen. Auf diese Weise wendet Automation einige der Prinzipien der objektorientierten Programmierung an, z. B. Wiederverwendung und Kapselung auf der Anwendungsebene selbst.
Wichtiger ist die Unterstützung, die Automation Benutzern und Lösungsanbietern bietet. Durch das Verfügbarmachen von Anwendungsfunktionen über eine gemeinsame, klar definierte Schnittstelle ermöglicht Automation die Erstellung von umfassenden Lösungen in einer einzelnen allgemeinen Programmiersprache, z. B. Microsoft Visual Basic, statt in verschiedenen anwendungsspezifischen Makrosprachen.
Viele kommerzielle Anwendungen, wie Microsoft Excel und Microsoft Visual C++, ermöglichen es Ihnen, viele ihrer Funktionen zu automatisieren. In Visual C++ können Sie beispielsweise VBScript -Makros schreiben, um Builds, Aspekte der Codebearbeitung oder von Debuggingaufgaben zu automatisieren.
Übergeben von Parametern in Automation
Eine Schwierigkeit bei der Erstellung von Automatisierungsmethoden besteht darin, einen einheitlichen „sicheren“ Mechanismus zum Übergeben von Daten zwischen Automatisierungsservern und -clients bereitzustellen. Automation verwendet den VARIANT -Typ, um Daten zu übergeben. Der VARIANT -Typ ist eine Union mit Tags. Sie verfügt über ein Datenelement für den Wert (wobei es sich um eine anonyme C++-Union handelt) und ein Datenelement, das den in der Union gespeicherten Informationstyp angibt. Der VARIANT -Typ unterstützt eine Reihe von Standarddatentypen: 2- und 4-Byte-Ganzzahlen, 4 und 8-Byte-Gleitkommazahlen, Zeichenfolgen und boolesche Werte. Darüber hinaus unterstützt es die HRESULT-Typen (OLE-Fehlercodes), CURRENCY (ein numerischer Festkommatyp) und DATE (absolute Datums- und Uhrzeittypen) sowie Zeiger und IUnknown
IDispatch
Schnittstellen.
Der VARIANT -Typ ist in der COleVariant -Klasse gekapselt. Die unterstützenden CURRENCY - und DATE -Klassen sind in den COleCurrency - und COleDateTime -Klassen gekapselt.
Automatisierungsbeispiele
AUTOCLIK Verwenden Sie dieses Beispiel, um mehr über Automatisierungsverfahren zu lernen und als Grundlage für weitere Informationen zur Remoteautomatisierung.
ACDUAL Fügt einer Automatisierungsserveranwendung duale Schnittstellen hinzu.
CALCDRIV Automatisierungsclientanwendung mit MFCCALC.
INPROC Demonstration einer prozessinternen Automatisierungsserveranwendung.
IPDRIVE Automatisierungsclientanwendung mit INPROC.
MFCCALC Demonstration einer Automatisierungsclientanwendung.