ПредишенСледващото

1. OLE Automation

OLE Automation - възможността за управление на OLE друго приложение програмен път.

Заявленията могат да предоставят достъп до своите услуги чрез COM интерфейси. След това, тези услуги ще бъдат в състояние да използват всяка част от код, който може да се позове на методи на COM обект. В COM, стандартен начин да се осигури възможност за програмиране, наречен автоматизация (автоматизация). Често, за да създадете програми, които контролират други приложения, използващи прост език, като Visual Basic инструменти. програма, създадена от тях се нарича още скриптове (скрипт).

По този начин, Програмируемостта цел - да позволи на сървъра на приложения за предоставяне на достъп до услугите на външни програми, сценарият може да направи всичко, като обикновен потребител. Можете да използвате COM интерфейси. Проблемът обаче е, че интерфейсите преди това не обсъдени доста възможности мач като Visual Basic среди. Оказа се, че Visual Basic, е сравнително прост език, това не е подходящо да се използва за програмиране. Има проблеми с указатели и marshaling.

За да се реши този проблем, Visual Basic група разработила стандарт COM интерфейс - IDispatch.

2. ДИСПЕЧЕРСКИТЕ-интерфейси

Един обект, чийто клас изпълнява IDispatch интерфейс обявен в модула за система Делфи - има Автоматизация обект. Вид IDispatch интерфейс определя методите и свойствата, които Автоматизация обект реализира чрез IDispatch интерфейс.

Като всеки нормален интерфейс, тя се изпълнява с помощта на виртуалната таблица от указатели към методи. VMT IDispatch интерфейс започва с три добре известни методи за IUnknown, последвано GetlDsOfNames методи, GetTypelnfo, GetTypelnfoCount и позове.
• Invoke (метод по време на работа) - използва се да се обадя други методи да стане това възможно, разработчика на обект реализира IDispatch трябва да се определи какво точно са достъпни методи. Това се постига чрез определяне на допълнително dispinterface (изпращане интерфейс), често се споменава като dispinterface (dispinterface). За изпълнение на ВМТ не се използва. Dispinterface всеки метод има номер - идентификационен номер Dispatch (Dispatch идентификатор - DispID), не се осъществява обръщение, и на кого. В действителност, реализацията на метода на обект Invoke е страхотно изявление дело.

• GetIDsOfNames - ви позволява да определите като параметър името на текста на метод интерес. Ако IDispatch е метод на сървъра с посоченото име, той се връща идентификатор DISPID, което след това се използва метод Invoke всъщност преобразува името на метода в своята DispID.

• GetTypelnfo - връща указател към интерфейса ITypelnfo обект - за вида на данните, ако обектът има тип библиотека. Следователно, можете да научите всичко за обажда методи и възможности за опаковане.

• GetTypelnfoCount - връща информация за това дали GetTypelnfo на разговорите ще се върнат полезна информация, т.е. дали библиотека тип обект (1 \ 0 Да \ Не).

3. Методи за създаване на автоматизация на обекти

Delphi ви позволява да създадете автоматизация на обекти в състава на външни и вътрешни автоматизация на сървъра.
а) За да създадете външен сървър за автоматизация трябва да бъде:
• Създаване на нова програма, която ще играе ролята на сървър с командата:
File \ New Application
След като създадете файл спаси единица под името Unitl.pas и подаде на проекта под името OLEXE.DPR

• Екипите трябва да изпълняват, за да се създаде на обекта за автоматизация.
File \ New
Автоматизация на обекти. Wizard ще започне да се създаде на обекта.

Първоначално съветника прозорец Автоматизация на обекта трябва да посочва името клас (Сума), Instancing (Multiple съд), Threading Модел (Single).

OLE-обект се определя като CoClass, съдържащ обикновено две методи (функция клас), един за създаване на местна, а другият - отдалечения обект:

CoSum = Class
Клас Функция Създаване (): ISum;
Клас Функция CreateRemote (Конст ИмеНаМашина: String): ISum; Край;

След затварянето на библиотеката вид и запишете нов файл-единица под името Sum.pas, е необходимо в този файл да приложат методите, декларирани от интерфейса, например, както следва:
б) Да се ​​създаде вътрешен сървър за автоматизация, трябва да:
• ActiveX библиотека.
• За да се създаде обект автоматизация трябва да изпълни командата: File \ New автоматизация на обекти
File \ New
в) показват методи и свойства, по принцип, сървърът за автоматизация могат да съдържат всеки от свойства и методи. Въпреки това, има спецификация на Microsoft за автоматизация сървъри, които следва да ръководят създаването им. За имоти, които е препоръчително да се посочи, са: FullName, Помощ за ляво, горе и много други.

Най-GUID на регистъра
В LocalServer32 раздел ще бъде показан пътя към OLEXE.EXE.
В раздел ProglD посочи: «OLEXE.Sum»
В секцията посочено TypeLib "
Във Версия точка посочва: "1.0"

Подкрепете проекта - споделете линка, благодаря!