Здравствуйте, Dizel, Вы писали:
D>class COfficeBtnHandler:
D> public IDispEventImpl<
D> /*nID*/ 1, COfficeBtnHandler,
D> &__uuidof(Office::_CommandBarButtonEvents),
D> &__uuidof(Office::__Office),
D> /*wMajor*/ OFFICELIB_MAJOR_VERSION,
D> /*wMinor*/ OFFICELIB_MINOR_VERSION>
D>{
D>public:
D> COfficeBtnHandler(void) {}
D> virtual ~COfficeBtnHandler(void) {}
Вот этот virtual не нужен.
D>Создаю кнопку и пытаюсь на нее повесить событие из класса COfficeBtnHandler таким методом:
D> CommandBarControlPtr m_pButton = NULL;
D>...
D> hr=m_Handler->DispEventAdvise(m_pButton,&(m_pButton.GetIID()));
D>А в ответ — тишина... Кнопка создается и можно хоть обкликаться — молчание...
По какому интерфейсу цепляешься? m_pButton.GetIID() или __uuidof(Office::_CommandBarButtonEvents)? И чему равен hr после этого DispEventAdvise, т.е. реально подцепился или нет?