При разработке надстроек для Visual Studio 2010 происходит сбой следующей строки:
CommandBarEvents handler = (EnvDTE.CommandBarEvents)m_VSStudio.DTE.Events.get_CommandBarEvents(popup);
Обновление: забыл сказать, что m_VSStudio относится к типу DTE2
Где всплывающее окно имеет тип CommandBarPopup (для типа CommandBarControl это работает, хотя)
Сбой строки с этим исключением:
System.Runtime.InteropServices.COMException (0x80020003): Member not found. (Exception from HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))
Точно такая же строка работала в Visual Studio 2008.
Цель этой строки - получить обработчик, который обрабатывает кликвенты, когда кто-то нажимает на всплывающее окно.
После поиска в соме я нашел эту ссылку: http://connect.microsoft.com/VisualStudio/feedback/details/524335/events-get-commandbarevents-exception-on-submenus-reproducible-bug-addin
Который в основном утверждает, что это известная ошибка, которая не будет исправлена, поскольку существует обходной путь. Но, к сожалению, это не означает обходной путь: (
Я был бы чрезвычайно рад, если у кого-нибудь есть отличная идея для обхода проблемы?
Причина, по которой я хочу прослушивать события щелчка, заключается в том, что я хочу показать или скрыть подменю (CommandBarControl) при заданном некотором условии при нажатии на меню (CommandBarPopup).
Так что обходной путь, который использует что-то еще, кроме события click, также будет оценен.