0

我确实在 C# 中定义了一个带有事件的接口:

[ComVisible(true), InterfaceType(ComInterfaceType.InterfaceIsDual), Guid("02F91299-B87C-47D2-B501-7768E767E012")]
public interface IFoo
{
    event FooEventHandler FooEvent;
}

[ComVisible(true), Guid("2CB3858D-5729-47A1-B46B-C2C37C522E10")]
public delegate void FooEventHandler(IFoo sender, int status);

我必须在非托管 C++ ATL DLL 中实现这个接口。代码类向导建议是:

STDMETHOD(add_FooEvent)(_FooEventHandler * value);
STDMETHOD(remove_FooEvent)(_FooEventHandler * value);

我将 FooEventHandler 视为 IDispatch 对象。我确实将那些 _FooEventHandler * 值添加/删除到列表中。

现在我的问题是:如何为所有存储的 _FooEventHandlers 触发/调用此事件?

谢谢, 出租车司机

更新: 我在这里找到了答案:使用 C++ 将管理事件暴露给 COM

4

0 回答 0