Microsoft OLE Automation

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 26. září 2016; kontroly vyžadují 6 úprav .

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).

Historie

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.

Praktický význam

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 .

Funkce

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: