IRealMutiEvt = interface(IDispatch)
['{C42ECD27-DEC7-4EAA-8AFA-317B29A3AC77}']
procedure TrigeDefEvt(const Msg: WideString); safecall;//激活第一个事件接口的一个方法
procedure TrigeDefEvt2(const msg: WideString); safecall;//激活第二个事件接口的一个方法
end;
IRealMutiEvtEvents = dispinterface//第一个事件接口
['{6C914926-A864-4626-9D82-9E74B1A84E70}']
procedure OnMsg(const bstr: WideString); dispid 1;
end;
IRealMutiEvtEvents2 = dispinterface//第二个事件接口
['{04991AA7-71E5-405D-ABD5-5A0D3D6272FD}']
procedure OnMsg(const msg: WideString); dispid 1;
end;
在实现部分
procedure TRealMutiEvt.Initialize;
begin
inherited Initialize;
FConnectionPoints := TConnectionPoints.Create(Self);
if AutoFactory.EventTypeInfo <> nil then
BEGIN
FConnectionPoint := FConnectionPoints.CreateConnectionPoint(
AutoFactory.EventIID, ckMulti, nil);
FconNectionPoint2 := FConnectionPoints.CreateConnectionPoint (DIID_IRealMutiEvtEvents2,ckMulti,nil)
END;
procedure TRealMutiEvt.TrigeDefEvt(const Msg: WideString);
var
DefEvt : IRealMutiEvtEvents
begin
//如何得到第一个接口defevt
end;