Вниз
Скачать: 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.966 c
11-1099554883
DmiSb
2004-11-04 10:54
2005.06.29
MaskEdit в KOL


14-1117491469
KilkennyCat
2005-05-31 02:17
2005.06.29
Если кому нужна работа в Петербурге


4-1115209354
RedStranger
2005-05-04 16:22
2005.06.29
В чем разница мужу handle и hwnd?


1-1117607686
vidiv
2005-06-01 10:34
2005.06.29
device pixels/inch


3-1115900123
Iova
2005-05-12 16:15
2005.06.29
Проблема с OpenSchema




   Наверх