我有一个继承自“DispEventAdvise”的类(对于outlook2010,但它并不重要):
class item_2010_event_handler :
public IDispEventSimpleImpl<IDC_OUTLOOK_ITEM_2010_EVENTS,
item_2010_event_handler,
&outlook_item_2010_ev_id>
现在,我想注册item_2010_event_handler的单个实例以从多个对象中获取事件,因此我多次调用DispEventAdvise()(每个对象一次),但是从第二次调用DispEventAdvise()后,我得到“未知”错误“函数异常。
是否可能不支持?如果没有,为什么不呢???
如果有可能,我缺少什么(显然,如果需要,我会添加更多代码......)?
答案 0 :(得分:0)
您继承的IDispEventSimpleImpl
的每个“副本”都会保留一个所谓的“cookie”,这是您稍后在需要取消/断开事件时提供给连接点的值。话虽如此,IDispEventSimpleImpl
类(名称中的“简单”字样)仅支持一个连接。
您的选择是:
IDispEventSimpleImpl
类,以便替换类可以连接到正确管理连接的多个点IDispEventSimpleImpl
基础继承多次以支持更多(固定数量 - 缺乏灵活性,适用于每个源类型的多个连接)单个实例上的连接