Метод класса UpdateRegistry создается автоматически и обеспечивает регистрацию и аннулирование регистрации сервера Автоматизации. Если параметр Register имеет значение True, выполняется регистрация, иначе - отмена регистрации.

Разработчик не должен использовать этот метод, т. к. его вызов осуществляется автоматически.

Одновременно с модулем данных создается и его интерфейс - потомок интерфейса iAppServer. Его исходный код содержится в библиотеке ТИПОВ проекта сервера приложения. Для удаленного модуля данных simpleRDM созданный интерфейс isimpleRDM представлен в листинге 21.2. Для удобства из листинга удалены автоматически добавляемые комментарии.

Листинг 21.2. Вновьсозданная библиотека типов для сервера.приложения р ! ; с исходным кодом интерфейса удалённого модуля данных к ■ '. - .: Т.!

^;.....|____^,.„т.,..„т+.,^„.т,т_____.........................................-.......'••..................................................._,__

ЫВЮ_5л.тр1еАррЗпгг: ТСЦЮ = ' { 93577575-0Г4Г-43В5-9ЕВЕ-А5745128О9А4 } ' ;
1Ю_1.51тр^0М: ТСиЮ = '(Е2СВЕВСВ-1950-4054-В823-62906306Е840}';
С1А53_51тр1еРОМ: ТСит = '{ОВ6А6463-5Г61-485Г-8Г23-ЕС6622091908}';

type

iSimpleRDM = interface;
ISimpleRDMDisp = dispinterface;
SimpleRDM = ISiirpleRDM;

ISiirpleRDM = interface (IAppServer)

['{E2CBEBCB-1950-4054-B823-62906306E840}*] end;

ISiirpleRDMDisp = dispinterface

['{E2CBEBCB-1950-4054-E823-62906306E840}']

function AS^ApplyUpdates(const ProviderName: WideString;
Delta: OleVariant;
MaxErrors: Integer;
out ErrorCount: Integer;
var CwnerData: OleVariant) : OleVariant;
dispid 20000000;
function ASj3etRecords (const PYovicterName: WideString;
Count: Integer;
out RecsOut: Integer;
Options: Integer;
const CommandText: WideString;
var Params;
OleVariant;
var CwnerData: OleVariant) : OleVariant;
dispid 20000001;
function AS__DataRequest (const ProviderNaire: WideString;
Data: OleVariant) : OleVariant;
dispid 20000002;
function AS_GetProviderNames: OleVariant;
dispid 20000003;
function AS_Get Pa rams (const ProviderNaire: WideString;
var CwnerData: OleVariant): OleVariant;
dispid 20000004;
function AS_RowRequest (const ProviderNaire: WideString;
Row: OleVariant;
RequestType: Integer;
var CwnerData: OleVariant) : OleVariant;
dispid 20000005;

procedure AS_Execute (const ProviderNaire: WideString; const

CornrandText: WideString;
var Params: OleVariant;
var CwnerData: OleVariant);
dispid 20000006;
end;

CoSimpleRDM = class

class function Create: ISirrpleRDM;
class function createRemote (const MachineNaire: string): ISirrpleRDM;
end;

inplarentaticn

uses ComOb j ;
Class function CoSimpleRDM.Create: ISiirpleRDM;
begin
Result := CreateComObject(CLASS_SimpleRDM) as ISiirpleRDM;
end;
class function CoSimpleRDM.CreateRemote (const MachineNaire: string) : ISiirpleRDM;

begin Result := CreateRemoteComObject(MachineName, CLASS_SimpleRDM)

as ISimpleRDM;

end; end.

Обратите внимание, что интерфейс isimpieRDM является потомком интерфейса iAppServer, рассмотренного выше.

Так как удаленный модуль данных реализует сервер Автоматизации, дополнительно к основному дуальному интерфейсу isimpieRDM автоматически создан интерфейс диспетчеризации iSimpleRDMDisp. При этом для интерфейса диспетчеризации созданы методы, соответствующие методам интерфейса IAppServer.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Декабрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс