Главная страница
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.055 c
3-1116840124
aleliko
2005-05-23 13:22
2005.06.29
И снова картинки ...


1-1117604631
leonidus
2005-06-01 09:43
2005.06.29
Подскажите компонент для отображения HTML страниц


1-1117582199
TrueCoder
2005-06-01 03:29
2005.06.29
Ошибка "Out of memory"


1-1118005957
alex-drob
2005-06-06 01:12
2005.06.29
Динамическое создание разделов в TreeView


14-1117448902
Сатир
2005-05-30 14:28
2005.06.29
Сабж