Создание внутреннего сервера автоматизации
Внешние серверы
запускаются как приложения, а
внутренние ? из
DLL. Можно начать с
существующей или с новой DLL, которую можно создать
с помощью диалогового окна New
Items (команда FileЮNew),
дважды щелкнув на пиктограмме
DLL.
На заметку |
Если
вы не очень хорошо знакомы с DLL,
обратитесь к главе 9,
"Динамически компонуемые
библиотеки", в которой
детально описывается создание
DLL. |
Как уже
упоминалось ранее, для того чтобы
представлять внутренний сервер
автоматизации DLL
должна экспортировать четыре
функции, которые определены в
модуле ComServ:
DllGetClassObject(),
DllCanUnloadNow(),
DlIRegisterServer() и DllUnregisterServer. Добавьте эти четыре
функции в раздел exports проекта, как показано
в листинге.
0бъект
автоматизации добавляется к
проекту DLL так
же, как и выполняемый проект: с
помощью средства Automation Object Wizard. Для этого проекта
можно добавить одно свойство и один
метод, как показано на рис. 7.
Библиотека типа приведена в листинге.
Рис. 7. Проект IPS в редакторе библиотеки
типа
Естественно, что
выше приведен простейший пример
сервера автоматизации, но он всего
лишь предназначен для иллюстрации
подключения. Свойству MessageStr может быть присвоено
значение, которое затем можно
отобразить с помощью функции ShowMessageStr(). Реализация интерфейса
IIPTest осуществлена в модуле
IPSMain.pas, код которого приведен
в листинге.
Как уже
упоминалось ранее в этой главе,
внутренние серверы регистрируются
не так, как
внешние. Для регистрации в
системном реестре внутреннего
сервера вызывается функция DllRegisterServer(). В интегрированной
среде разработки Delphi выполнить этот
процесс очень просто ? с помощью команды
Run? Register ActiveX Server.
|