Създаване на вътрешен сървър за автоматизация

Точно както изграждането на сървъри от процес започва с изграждането на отделни приложения, така и изграждането на сървъри на процеси започва с изграждането на DLL. Можете да използвате съществуваща DLL библиотека или да създадете напълно нова, като щракнете двукратно върху иконата DLL в диалоговия прозорец Нови елементи (Елемент от менюто Файл Ново).

За повече информация относно техниките за разработка на DLL вижте главата

6, „Динамично свързани библиотеки“. Този раздел предполага, че читателят вече е запознат със създаването на такива приложения.Както беше споменато, за да функционира успешно като сървър за вътрешна автоматизация, DLL трябва да експортира четири функции, дефинирани в модула ComServ: DllGetClassObject (), DllCanUnload- Now (), DllRegisterServer () и DllUnregisterServer (). Добавете тези четири функции към раздела за експортиране на проекта, както е показано в листинг 15.5.

Листинг 15.5. IPS.dpr - вътрешен файл на сървърния проектбиблиотека IPS;

IPSMain в „IPSMain.pas“,

IPS_TLB в „IPS_TLB.pas“;

изнася DllRegisterServer, DllUnregisterServer, DllGetClassObject, DllCanUnloadNow;

начало край Обектът за автоматизация се добавя към DLL проекта по същия начин, както към изпълнимия проект, използвайки съветника за обекти на автоматизация. За този проект нека добавим само едно свойство и един метод, както е показано на фиг. 15.7. Версията Object Pascal на библиотеката с типове е показана в листинг 15.6.

сървър

Листинг 15.6. IPS_TLB.pas - файл за импортиране на библиотеката от типове за проекта на вътрешния сървър

// Типовете, декларирани в този файл, са създадени от данни

// библиотеки тип. Ако този тип библиотека е изрично или

// индиректно (чрез библиотека от друг тип, препращаща към това

// библиотека тип) се импортира отново или с помощта на командата

// ‘Refresh’ в прозореца на редактора на библиотека с типове се активира по време на

// редактиране на библиотека с типове, след което цялото съдържание на този файл

// ще бъде пресъздаден и всички направени промени

// от потребителя ръчно, ще бъдат загубени.

// PASTLWTR: $ Ревизия: 1.130.3.0.1.0 $

// Файл, създаден на 01.10.2001 01:06:49 от библиотека с типове,

// Напишете Lib: G: \ Doc \ D6DG \ Source \ Ch15 \ Automate \ IPS.tlb (1)