ВУЗ:
Составители:
Рубрика:
24
2. Доработайте клиентский проект, предусмотрев возможность обращения к
методам также через IDispatch и диспинтерфейс.
3. Перепишите обработчик btLoadClick, используя явный вызов Query-
Interface.
2.2. Внутренний сервер
2.2.1. Создание сервера
Сначала Вы должны создать библиотеку , оформленную с учетом требований
COM. Это делается при помощи мастера File - New – ActiveX - ActiveX Library.
При его выборе будет создан новый проект, реализующий DLL, и сгенериро -
ван следующий код :
Library Project1;
uses
ComServ;
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
{$R *.RES}
begin
end.
Созданная DLL экспортирует четыре функции, необходимые для работы COM.
Далее эту библиотеку необходимо преобразовать в COM-сервер. Сохраните ее с
именем InProcServer и вызовите мастер « COM-object» . В появившемся диалоге
в поле Class Name (имя компонентного класса ) введите ChangeImage. Поля
Instansing, Threading Model заполните в соответствии с рекомендациями п.2.1.
Флаг Include Type Library приводит к включению в сервер библиотеки типов .
Флаг Mark interface OleAutomation делает COM-сервер совместимым с OLE
Automation, что вынудит Вас использовать в методах интерфейса только со -
вместимые с OLE Automation типы данных. Поле Implemented interfaces пока -
зывает имя интерфейса COM-объекта по умолчанию. Его можно заменить , вве-
дя, например ISetImage.
В редакторе библиотеке типов для интерфейса ISetImage создайте метод
Paint. Paint имеет два параметра . Через входной параметр FileName
строкового типа передается имя графического файла. Тип выходного параметра
Destination, через который измененное изображение будет передаваться
клиенту , определите как Picture**. Редактор заменит его типом IPic-
tureDisp.
24 2. Д оработай те кли ентски й проект, пред усмотрев в оз мож ность обращ ени я к метод ам такж ечерез IDispatch и д и спи нтерфей с. 3. Перепи ш и те обработчи к btLoadClick, и спольз уя яв ны й в ы з ов Query- Interface. 2.2. Внут ре нни й се рв е р 2.2.1. Соз д ани есервера Сначала В ы д олж ны соз д ать би бли отеку, оформленную с учетом требов ани й COM. Э то д елаетсяпри помощ и мастера File - New –ActiveX - ActiveX Library. При его в ы боре буд етсоз д ан нов ы й проект, реали з ую щ и й DLL, и сгенери ро- в ан след ую щ и й код : Library Project1; uses ComServ; exports DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer; {$R *.RES} begin end. Соз д анная DLL экспорти руетчеты рефункци и , необход и мы ед ля работы COM. Д алееэту би бли отеку необход и мо преобраз ов ать в COM-серв ер. Сохрани тееес и менем InProcServer и в ы з ов и темастер«COM-object» . В появ и в ш емсяд и алоге в поле Class Name (и мя компонентного класса) в в ед и те ChangeImage. Поля Instansing, Threading Model з аполни те в соотв етств и и с рекоменд аци ями п.2.1. Ф лаг Include Type Library при в од и т кв клю чени ю в серв ерби бли отеки ти пов . Ф лаг Mark interface OleAutomation д елает COM-серверсов мести мы м с OLE Automation, что в ы нуд и т В ас и спольз ов ать в метод ах и нтерфей са только со- в мести мы есOLE Automation ти пы д анны х. ПолеImplemented interfaces пока- з ы в аети мяи нтерфей са COM-объекта по умолчани ю . Е го мож но з амени ть, в в е- д я, напри мерISetImage. В ред акторе би бли отеке ти пов д ля и нтерфей са ISetImage соз д ай те метод Paint. Paint и меет д в а параметра. Ч ерез в ход ной параметр FileName строков ого ти па перед аетсяи мяграфи ческого фай ла. Т и п в ы ход ного параметра Destination, через которы й и з мененное и з ображ ени е буд ет перед ав аться кли енту, опред ели те как Picture**. Ред актор з амени т его ти пом IPic- tureDisp.
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »