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))
まったく同じ行がVisualStudio2008で機能しました。
この行の目的は、ポップアップをクリックしたときにクリックイベントを処理するハンドラーを取得することです。
som検索した後、私はこのリンクを見つけました:http: //connect.microsoft.com/VisualStudio/feedback/details/524335/events-get-commandbarevents-exception-on-submenus-reproducible-bug-addin
これは基本的に既知のバグであり、回避策があるため修正されないことを示しています。しかし残念ながら、それは回避策を述べていません:(
誰かが回避策について素晴らしいアイデアを持っているなら、私は非常に嬉しいですか?
クリックイベントを聞きたいのは、メニュー(CommandBarPopup)をクリックしたときに、何らかの条件でサブメニュー項目(CommandBarControl)を表示または非表示にしたいためです。
したがって、クリックイベント以外のものを使用する回避策もありがたいです。