Az OLE Automation egy Microsoft technológia , amely lehetővé teszi a COM-objektumok elérését a szkriptnyelvi tolmácsokból, például a VBScriptből (jelenleg az OA-objektumok elérésének támogatása az összes Windows-verzióban elérhető népszerű szkriptnyelvek).
Először 1993 körül jelent meg az elavult DDE_EXECUTE funkció helyettesítőjeként.
A Visual Basic programozási környezet szinte teljes egészében az OLE Automationon alapult, olyan adattípusokkal, mint a String és a Variant.
Az OLE Automation objektumok mindegyike ActiveX-vezérlő (OCX-vezérlő). Ezen összetevők tulajdonságai, metódusai és eseményei az OLE Automation segítségével valósulnak meg.
Az OLE Automation objektumok is számos népszerű alkalmazás, például a Microsoft Office összetevői . Ez lehetővé teszi ennek az alkalmazásnak az indítását és kezelését (például Excelben , programozottan táblázat létrehozását, a benne lévő cellák kitöltését és fájlba mentését) egy szkriptnyelven írt szkriptből.
Az OLE Automation objektumok is mind dinamikus HTML-címkék (Microsoft Trident vagy Apple WebKit [ellenőrizendő] vagy Google Chrome [ellenőrizendő] használata esetén ).
Ezen a technológián alapul a WMI (a kliensprogramokkal való kommunikációért felelős rétege) és számos Windows adminisztrációs segédprogram, például az IIS webszerver kezelése .
A technológia meghatározza azokat a COM interfészeket, amelyeken keresztül a nyelvi tolmács kommunikál az objektummal.
A technológia támogatja:
OLE Automation adattípusok (tulajdonságokban, metódusokban és eseményekben használhatók):
Más adattípusokat (struktúrák, nem COM objektummutatók, tömbök és karakterláncok egyéb ábrázolásai) a technológia nem támogat.
A technológia támogatja a típuskönyvtárakat is – információkat a futás közben elérhető tulajdonságok/metódusok/argumentumok típusairól (olyan, mint a Reflection in .NET).
A technológia jellemzően futási időben oldja fel a tulajdonság- és metódusneveket anélkül, hogy egyáltalán ellenőrizné őket az elemzés során, és csak "az objektum nem támogatja a tulajdonságot vagy a metódust" hibát futás közben (késői kötés). Ha azonban az objektum rendelkezik a gépen regisztrált típuskönyvtárral, akkor bizonyos fejlesztői környezetben lehetséges úgy deklarálni, hogy az elemzési szakaszban a nevek ellenőrzésre kerüljenek. Visual Basicben ez a Dim o As Object (csak késői kötés) vagy a Dim o As Excel.Application (korai kötés, de az Excel telepítése szükséges az összeállítási gépen, és az Excel hozzáadása a programban használt összetevők listájához) segítségével történt. a projekt).
A C/C++ nyelvek szintjén az OLE Automation hívás úgy néz ki, mint az IDispatch::Invoke hívása, ahol a metódus/tulajdonság/argumentumok karakterláncnevei konstanssá, az argumentumok értékei pedig OLE Automation típusokká konvertálódnak. átmennek. Ez rendkívül kényelmetlen és teljesítményköltséget okoz, ezért sok objektum megvalósította az ún. A kettős interfészek az IDispatch leszármazottai, amelyek mindkét Invoke-ot megvalósítják (szkriptek és As Object deklaráció esetén), pontosan ugyanazt a funkcionalitást a szokásos COM metódusokon keresztül (amelyeket a C ++ és azok az interpretátorok használnak, amelyek megértik a kettős interfészt, mint például a Visual Basic ). Ez fenntartja a fenti adattípusokra vonatkozó korlátozást. Az ATL könyvtár kettős interfész támogatási keretrendszert tartalmaz.
A Microsoft C++ fordítója támogatja az #import direktívát – egy típuskönyvtár (.tlb vagy a végrehajtható fájl, amelybe be van ágyazva) beépítését. Ugyanakkor a C++ fejlécek automatikusan generálódnak a forrásfájlból a comdef.h eszközök segítségével (smart-pointerek COM objektumokhoz stb.).
Objektumfejlesztési ciklus:
Objektum építési ciklus: