Microsoft OLE automatizálás

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2016. szeptember 26-án felülvizsgált verziótól ; az ellenőrzések 6 szerkesztést igényelnek .

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

Történelem

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.

Gyakorlati jelentősége

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 .

Jellemzők

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: