Ole automatizálás, adattípusok és küldő-ole interfészek

1. OLE Automation

OLE Automation - képes kezelni az OLE másik alkalmazás programozottan.

Az alkalmazások hozzáférést biztosít a szolgáltatásait COM interfészek. Ezt követően, az ilyen szolgáltatásokat képes lesz használni bármilyen kódrészlet, hivatkozhat módszerek egy COM objektumot. A COM, szabványos módon, hogy biztosítsák a programozhatóság nevezett automatizálás (Automatizálás). Gyakran olyan programokat, amelyek szabályozzák, más alkalmazások használata egyszerű nyelven, mint a Visual Basic eszközöket. program által létrehozott őket is nevezik script (script).

Így a cél programozhatóság - az alkalmazás szerver, hogy a szolgáltatások elérését külső programok, a forgatókönyvet is mindent megtenni, mint egy normál felhasználó. Használhatja COM interfészek. A probléma azonban az, hogy az interfészek korábban tárgyalt nem egészen egyezik lehetőségek például a Visual Basic környezetben. Kiderült, hogy a Visual Basic, hogy viszonylag egyszerű nyelven, ez nem alkalmas arra, hogy használja a programozhatóság. Problémák vannak a mutatók és elrendezésében.

A probléma megoldására, a Visual Basic csoport kifejlesztett egy szabványos COM interfész - IDispatch.

2. DISPATCH-interfészek

Egy tárgy, osztály megvalósítja az interfészt IDispatch deklarált rendszer Delphi modul - ott Automation objektum. Típus IDispatch interfész meghatározza a módszerek és tulajdonságok, hogy Automation objektum keresztül valósít IDispatch interfészen.

Mint minden normális felületen, akkor hajtják végre a virtuális táblázata mutatókat módszerekkel. VMT IDispatch interfész kezdődik a három jól ismert módszerek IUnknown, majd GetlDsOfNames módszerek, GetTypelnfo, GetTypelnfoCount és indítsa el.
• Invoke (runtime módszer) - hívtuk más módszerek Hogy ez lehetséges, a tárgy fejlesztő végrehajtja IDispatch kell meghatározni, hogy mi pontosan módszerek állnak rendelkezésre. Ez úgy érhető el meghatározó további dispinterface (feladási interfész), gyakran nevezik dispinterface (dispinterface). Megvalósítása VMT nem használják. Dispinterface mindegyik módszer van rendelve egy szám - a Dispatch azonosító (Dispatch IDentifier - DispID), nincs hívás történik, és kinek. Tény, hogy a megvalósítása a cél Invoke módszer nagy ügyben nyilatkozatot.

• GetIDsOfNames - lehetővé teszi, hogy meghatározza, mint a paraméter a neve a szöveg érdekes módszert. Ha IDispatch egy módszer a szerver a megadott néven, visszatér az azonosító DISPID, amellyel azután Invoke módszer valóban átalakítja a neve a módszer annak DispID.

• GetTypelnfo - visszaad egy pointert a felület ITypelnfo tárgy - a típusú adatokat, ha az objektum egy könyvtár típusát. Ezért, akkor mindent megtudhat hívó módszerek és csomagolási lehetőségek.

• GetTypelnfoCount - visszaadja információ arról, hogy a hívás GetTypelnfo visszatér hasznos információt, azaz hogy az objektum típusa könyvtár (1 \ 0 Igen \ Nem).

3. Módszerek létrehozásának automatizálás tárgyak

Delphi lehetővé teszi, hogy az automatizálás tárgyak összetétele a külső és belső szerver automatizálás.
a) létrehozásához külső automatizálási szerver kell:
• Készítsen egy új alkalmazás, hogy fog játszani a szerepét a szerver futtatásával a parancsot:
Fájl \ Új alkalmazás
Miután létrehozott egy fájl mentése egység néven Unitl.pas és elküldésére projekt néven OLEXE.DPR

• A csapatoknak el kell végezni, hogy megteremtse a automatizálási objektum.
Fájl \ Új
Automation Object. Elindul, hogy hozzon létre az objektumot.

Kezdetben az ablak Automation Object Wizard kell adnia a Class Name (Sum), instancing (Multiple Bíróság), Threading Modell (Single).

OLE-objektum definíciója CoClass, amely általában két módszer (funkcióosztály), egyet létre helyi, a másik - a távoli objektum:

CoSum = osztály
Class funkció létrehozása (): ISum;
Osztály Funkció CreateRemote (Const Számítógépnév: String): ISum; Vége;

Lezárása után a típustárat és mentse az új fájlt egység néven Sum.pas, szükség van ebben a fájlban az eljárások megvalósítására által megadott felület, például az alábbiak szerint:
b) létrehozásához hazai automatizálás szerver kell tennie:
• ActiveX Library.
• létrehozásához automatizálási objektum kell végrehajtani a parancsot: Fájl \ Új Automation Object
Fájl \ Új
c) A kiállított módszerek és tulajdonságok, elvileg, az automatizálási kiszolgáló bármelyikét tartalmazhatják a tulajdonságok és módszerek. Azonban van egy Microsoft specifikáció automatizálási kiszolgálók, melyek mentén azok létrehozása. Tulajdonságok, hogy érdemes, hogy jelezze a következők: FullName, Súgó, Balra, Fel, és még sokan mások.

A GUID a nyilvántartás
A LocalServer32 részén lesz látható az utat OLEXE.EXE.
Szakaszban ProglD jelezte: «OLEXE.Sum»
A részben jelzett TypeLib "
A Verzió szakaszban jelzett: „1.0”