При использовании __event (VC 7.0) и директивы
[event_source(native)]
class AClass
{
__event void func();
};
для native С++ класса,
компилятор подставляет свой код, список event hanler-ов, пару методов, и еще что-то,
но не обнуляет начальное значение __eventHandlerList_AClass_func — первый node в списке
В результате ошибка — проверка на не ноль и обращение в этот не ноль.
Если в конструкторе прописать инициализацию: __eventHandlerList_AClass_func = NULL,
Обращение к func() начинает работать.
Но диссоциировать handler путем обращения к __unhook(...) не получается — просто ничего не происходит.
То ли Microsoft выпустил совершенно сырой вариант, то ли я чего-то не понимаю.
Плииз.