http://msdn.microsoft.com/en-us/library/ee2k0a7d.aspx
Обработка событий также поддерживается для родные классы C ++ (классы C ++, которые не реализовывать COM-объекты), однако эта поддержка устарела и будет удален в будущем релиз .
Кто-нибудь знает почему? Не удалось найти объяснения этому утверждению.
Это совершенно нестандартный кладж, который, вероятно, имеет очень мало фактического пользователи. И я имею в виду нестандартный клудж даже в частном мире WinNT и Microsoft.
COM имеет гораздо более богатый репертуар для событийоподобных механизмов, а также позволяет полностью многопоточный код в наши дни
Это смертельно - эта функция делает неявную блокировку (возможно, идея нашего дедушки «синхронизированы» перед шаблонами и широко распространено безопасное использование нормальных критических секций). Тот делает его более опасным, чем отдельная квартира COM, хм, вещь :-) Так как он может дать вам тупик из ниоткуда (случалось и с синхронизированными методами Java - ничего особенного: -)
В наши дни все и их собаки знают, как использовать обычные многопоточность и, по крайней мере, критические секции с умными указателями, поэтому, помимо того, что это опасно, эта вещь также не имеет значения.
Я бы рискнул предположить, что они захотят, чтобы вы сделали все это.
Я бы рискнул предположить, и это просто, что подобная функциональность может быть достигнута библиотекой типов сигналов / слотов более переносимым / стандартным способом C ++ (с шаблонами), а не требующей поддержки компилятора MS.
Посмотрите на Boost :: Signals2
(Это преемник Boost Signals, который больше не поддерживается)