プロジェクト内の参照の右クリック (コンテキスト) メニューに要素を追加する Visual Studio 拡張機能を開発しています。Group
これは、 の親で を定義することによって行われIDM_VS_CTXT_REFERENCE
ます。
クリックされた参照に応じてメニュー要素を表示/非表示にしたいので、メニュー項目を次のように定義しますOleMenuCommand
。
if (commandService != null)
{
var menuCommandID = new CommandID(CommandSet, CommandId);
var menuItem = new OleMenuCommand(this.MenuItemCallback, menuCommandID);
menuItem.BeforeQueryStatus += (sender, args) =>
{
var button = (OleMenuCommand)sender;
button.Visible = this.CommandVisible();
};
commandService.AddCommand(menuItem);
}
メソッドの実装に問題がありCommandVisible
ます。例として、参照の名前が で始まる場合にメニューを表示したいとしましょうA
。どうすればいいですか?
任意の ID、GUID、および存在しない/理解できないドキュメントにやみくもにつまずく相互運用地獄に閉じ込められているように感じます。
参照が含まれているプロジェクトを参照の id として掘り出すことができましたIVsProject
が、呼び出しGetMkDocument
ても何も返されません (プロジェクト内のファイルでは機能しますが、参照では機能しません)。
どうすればいいですか?これを行う方法に関するドキュメントはどこにありますか?