From 9111c9263e929cecfdef90725754cbfbf6a0920d Mon Sep 17 00:00:00 2001 From: michael Date: Fri, 1 Jan 2016 16:53:26 +0000 Subject: [PATCH] =?UTF-8?q?*=20Patch=20from=20Ant=C3=B4nio=20Galv=C3=A3o?= =?UTF-8?q?=20to=20make=20an=20event=20sink:=20Implements=20ConnectEvents?= =?UTF-8?q?=20and=20DisConnectEvents.=20(bug=20ID=2028377)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: trunk@32822 - --- packages/winunits-base/src/oleserver.pp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/winunits-base/src/oleserver.pp b/packages/winunits-base/src/oleserver.pp index d75f5b800c..9a9c633f38 100644 --- a/packages/winunits-base/src/oleserver.pp +++ b/packages/winunits-base/src/oleserver.pp @@ -46,8 +46,9 @@ type TOleServer = class(TComponent, IUnknown) private FRemoteMachineName: string; - FEventDispatch: TServerEventDispatch; FServerData: PServerData; + FEventDispatch: TServerEventDispatch; + FEventsConnection: DWord; protected function QueryInterface(constref IID: TGUID; out Obj): HResult; stdcall; override; function _AddRef: Integer; stdcall; @@ -157,14 +158,16 @@ implementation end; - procedure TOleServer.ConnectEvents(const Obj: IUnknown); - begin - end; +procedure TOleServer.ConnectEvents(const Obj: IUnknown); +begin + ComObj.InterfaceConnect(Obj, FServerData^.EventIID, FEventDispatch, FEventsConnection); +end; - procedure TOleServer.DisconnectEvents(const Obj: Iunknown); - begin - end; +procedure TOleServer.DisconnectEvents(const Obj: Iunknown); +begin + ComObj.InterfaceDisconnect(Obj, FServerData^.EventIID, FEventsConnection); +end; procedure TOleServer.InvokeEvent(DispID: TDispID; var Params: TVariantArray);