У меня есть класс, который наследует от «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 (), я получаю исключение «Неизвестная ошибка» из функции.
Возможно ли это не поддерживается? И если нет, то почему???
Если это возможно, что я пропускаю (очевидно, я добавлю больше кода, если это необходимо …)?
Каждая «копия» IDispEventSimpleImpl
вы наследуете от так называемого «cookie» — значение, которое вы возвращаете в точку подключения позже, когда вам нужно отключить / отключиться от событий. Было сказано, что, IDispEventSimpleImpl
Класс (обратите внимание на слово «простой» в названии) поддерживает только одно соединение.
Ваш выбор:
IDispEventSimpleImpl
класс, чтобы класс замены мог подключаться к нескольким точкам, правильно управляя соединениямиIDispEventSimpleImpl
базы для поддержки большего количества (фиксированное количество — не хватает гибкости, хорошо для нескольких соединений, по одному на тип источника) соединений в одном экземпляреДругих решений пока нет …