Подключение нескольких клиентов к одному Automation серверу

Тема в разделе "Delphi - СОМ", создана пользователем jashilko, 6 май 2009.

  1. jashilko

    jashilko Гость

    Задача такая: есть сервер COM, который обрабатывает события при помощи Automation Object, есть клиенты которые на это событие подписаны. Проблема в том, что при запуске нескольких клиентов, каждый из них создаёт свой экземпляр обработчика событий, то есть если вызвать событие на одном из клиентов, другие клиенты это событие не поймают.

    Подключение в клиенте к COM происходит так:

    [codebox] public
    EventSink: IEventSink;
    AutoTest: Iautom;
    ConnectionPoint: IConnectionPoint;
    Cookie: Integer;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    var
    Container: IConnectionPointContainer;
    begin
    AutoTest := GetActiveOleObject('server.autom') as Iautom;
    EventSink := TEvent.Create as IEventSink;
    Container := AutoTest as IConnectionPointContainer;
    OleCheck(Container.FindConnectionPoint(IEventSink, ConnectionPoint));
    OleCheck(ConnectionPoint.Advise(EventSink, Cookie));
    end;[/codebox]
     
Загрузка...

Поделиться этой страницей