OLE Automation je technologie společnosti Microsoft , která vám umožňuje přistupovat k objektům COM z interpretů skriptovacích jazyků, jako je VBScript (v současnosti je podpora pro přístup k objektům OA dostupná ve verzích všech oblíbené skriptovací jazyky).
Poprvé se objevil kolem roku 1993 jako náhrada za zastaralou funkci DDE_EXECUTE.
Programovací prostředí Visual Basic bylo založeno téměř výhradně na automatizaci OLE s datovými typy jako String a Variant.
Objekty automatizace OLE jsou všechny ovládací prvky ActiveX (ovládací prvky OCX). Vlastnosti, metody a události těchto součástí jsou implementovány pomocí automatizace OLE.
Objekty automatizace OLE jsou také mnoha oblíbenými aplikacemi, jako jsou součásti sady Microsoft Office . To umožňuje spouštět a spravovat tuto aplikaci (např. v Excelu programově vytvořit tabulku, vyplnit v ní buňky a uložit ji do souboru) ze skriptu napsaného ve skriptovacím jazyce.
Také objekty OLE Automation jsou všechny značky Dynamic HTML (při použití Microsoft Trident nebo Apple WebKit [ke kontrole] nebo Google Chrome [ke kontrole] ).
Na této technologii je založeno také WMI (jeho vrstva zodpovědná za komunikaci s klientskými programy) a řada administrativních nástrojů Windows, například správa webového serveru IIS .
Technologie definuje ta rozhraní COM, přes která bude jazykový interpret komunikovat s objektem.
Technologie podporuje:
Datové typy automatizace OLE (lze použít ve vlastnostech, metodách a událostech):
Jiné datové typy (struktury, ukazatele objektů jiných než COM, jiné reprezentace polí a řetězců) technologie nepodporuje.
Technologie také podporuje knihovny typů – informace o typech vlastností / metod / argumentů dostupných za běhu (něco jako Reflection v .NET).
Technologie obvykle řeší názvy vlastností a metod za běhu, aniž by je během analýzy vůbec kontrolovala, a pouze za běhu vyvolá chybu „objekt nepodporuje vlastnost nebo metodu“ (pozdní vazba). Pokud má však objekt na počítači registrovanou knihovnu typů, pak je v některých vývojových prostředích možné ji deklarovat tak, že názvy budou zkontrolovány ve fázi analýzy. Ve Visual Basic to bylo provedeno pomocí Dim o As Object (pouze pozdní vazba) nebo Dim o As Excel.Application (předčasná vazba, ale vyžaduje, aby byl Excel nainstalován na sestavení stroje a aby byl Excel přidán do seznamu komponent používaných v projekt).
Na úrovni jazyků C/C++ vypadá volání automatizace OLE jako volání IDispatch::Invoke, kde jsou názvy řetězců metody/vlastnosti/argumentů převedeny na konstanty a hodnoty argumentů převedeny na typy automatizace OLE. jsou předány. To je extrémně nepohodlné a způsobuje to náklady na výkon, takže mnoho objektů implementovalo tzv. duální rozhraní jsou potomky IDispatch, kteří implementují jak Invoke (používané skripty a v případě deklarace jako objekt), přesně stejnou funkcionalitu prostřednictvím běžných metod COM (používané C ++ a interprety, které chápou duální rozhraní, jako je Visual Basic). ). To zachovává omezení na datové typy výše. Knihovna ATL obsahuje rámec podpory duálního rozhraní.
Kompilátor Microsoft C++ podporuje direktivu #import - zahrnutí knihovny typů (.tlb nebo spustitelného souboru, do kterého je vložena). Zároveň jsou hlavičky C++ automaticky generovány ze zdrojového souboru pomocí nástrojů comdef.h (smart-pointery pro COM objekty atd.).
Cyklus vývoje objektu:
Cyklus výstavby objektu: