Вниз
Скачать: CL | DM;

Отключение от сервера атоматизации из программы   Найти похожие ветки 

← →
Sectey ©   (2004-09-09 10:31) [0]

Добрый день.
Как происходит отключение от сервера автоматизации из программы. У меня по чему-то отключается (т.е. сервер автоматизации закрывается) только по выходу из клиентской программы.


← →
VMcL ©   (2004-09-09 15:16) [1]

Код в студию.


← →
Sectey ©   (2004-09-09 15:55) [2]

описания стока события


 TSrvAutoSink = class(TObject, IUnknown, IDispatch)
 private
   FController: TClient;
   { IUnknown }
   function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
   function _AddRef: Integer; stdcall;
   function _Release: Integer; stdcall;
   { IDispatch }
   function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
   function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
   function GetIDsOfNames(const IID: TGUID; Names: Pointer;
     NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
   function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
     Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
 public
   constructor Create(Controller: TClient);
 end;


объявление переменных


   FServer: ISrvAuto;
   FSrvAutoSink: TSrvAutoSink;
   FCookie: Integer;


запуск сервера автоматизации на клиенте


procedure TClient.Start;
var
 ActiveObj: IUnknown;
begin
 FSrvAutoSink := TSrvAutoSink.Create(Self);
 GetActiveObject(Class_SrvAuto, nil, ActiveObj);
 if ActiveObj <> nil then
   FServer := ActiveObj as ISrvAuto
 else
   FServer := CoSrvAuto.Create;

 InterfaceConnect(FServer, ISrvAutoEvents, FSrvAutoSink, FCookie);
end;


деструктор клиента


destructor TClient.Destroy;
begin
 InterfaceDisconnect(FSrvAutoSink, ISrvAutoEvents, FCookie);
 FSrvAutoSink.Free;
 FServer := nil;
 inherited;
end;


← →
VMcL ©   (2004-09-10 12:33) [3]

>>Sectey ©  (09.09.04 15:55) [2]

Судя по коду, если TClient.Destroy вызывается только при завершении клиентской программы, то так и должно быть, поскольку FServer освобождается только там.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.027 c
11-1101104807
Solo
2004-11-22 09:26
2005.06.29
StringVar + RichEdit.Selection+ StringVar2


3-1116325528
Dell3r
2005-05-17 14:25
2005.06.29
Ошибка при выполении запроса


1-1117914175
lookin
2005-06-04 23:42
2005.06.29
Правая вертикальная ось и Excel


1-1118248773
rolex
2005-06-08 20:39
2005.06.29
Как из сокращённого пути сделать полный?


1-1118157641
Vitalik
2005-06-07 19:20
2005.06.29
runtime пакеты




   Наверх