Форум: "Corba";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизОтключение от сервера атоматизации из программы Найти похожие ветки
← →
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 вся ветка
Форум: "Corba";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c