Имеется сервер автоматизации в виде exe, имеются несколько клиентов которые к нему подключаются и должны получать события. То есть один клиент по нажатию кнопки событие генерирует, и все! клиенты его получают.
Всё работает на локальной машине, как только я пытаюсь запустить клиента на локальной машине, он создаёт всё равно свой сервер, никак не связанный с тем, к которому подключены локальные клиенты.
У клиентов есть функция подключения GetActiveObject, если объект получили, то всё здорово, если нет - создаём. Если клиент удалён, используем функцию CreateRemoteComObject но она именно создаёт новый, она не подключается к уже существующему.
Почему так и в чём решение?
Подключение клиента:
GetActiveObject(CLASS_autom, nil, ActiveObj);
if ActiveObj <> nil then
AutoTest := ActiveObj as Iautom
else
AutoTest := Coautom.Create;
EventSink := TEvent.Create as IEventSink;
Container := AutoTest as IConnectionPointContainer;
OleCheck(Container.FindConnectionPoint(IEventSink, ConnectionPoint));
OleCheck(ConnectionPoint.Advise(EventSink, Cookie));