Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: 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 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




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


14-1117803383
Cerberus
2005-06-03 16:56
2005.06.29
Есть предложение.


11-1101104807
Solo
2004-11-22 09:26
2005.06.29
StringVar + RichEdit.Selection+ StringVar2


1-1117740974
Slawutich
2005-06-02 23:36
2005.06.29
Можно ли както сохранить картинку в переменную


6-1112245143
Norn1
2005-03-31 08:59
2005.06.29
http&amp;ftp via proxy