我试图通过 COM 访问我的应用程序的某些部分,主要是因为我需要一个 Delphi 应用程序才能调用 .NET 应用程序上的某些服务。
我已经设法通过从 ServicedComponent 类继承的 COM 公开了一些方法,并且工作正常。
现在我需要能够向客户提出事件,以便在发生某些事情时提醒他。我目前有这样的事情:
public interface IEvents
{
void OnMessage();
}
[EventClass]
[ComVisible(true)]
public class MyEventsClass : ServicedComponent, IEvents
{
public void OnMessage()
{
}
}
但是当我从 Delphi 导入 TypeLibrary 时,我得到了这个:
IEvents = interface(IDispatch)
['{E7605303-F968-3509-829B-BF70084053C4}']
procedure OnMessage; safecall;
end;
IEventsDisp = dispinterface
['{E7605303-F968-3509-829B-BF70084053C4}']
procedure OnMessage; dispid 1610743808;
end;
我真的不知道如何使用。我期待一个 IUnknown 接口,我可以通过 MyService.Register(IEvents events) 实现并提供给服务......
我想我在这里完全迷失了......关于如何使用 .NET 正确实现 COM+ 事件的任何建议或参考?