Я хотел бы включить свой пункт меню расширения только при открытом редакторе кода.
Я пытаюсь определить, когда открывается окно кода со следующим кодом без успешного результата ...
private void MenuItem_BeforeQueryStatus(object sender, EventArgs e)
{
OleMenuCommand menuCommand = sender as OleMenuCommand;
if (null != menuCommand)
{
IVsMonitorSelection monitorSelection = this.ServiceProvider.GetService(typeof(IVsMonitorSelection)) as IVsMonitorSelection;
int pfActive;
Guid codeWindowGuid = VSConstants.UICONTEXT_CodeWindow;
uint solutionExistCookie;
monitorSelection.GetCmdUIContextCookie(ref codeWindowGuid, out solutionExistCookie);
monitorSelection.IsCmdUIContextActive(solutionExistCookie, out pfActive);
menuCommand.Enabled = (pfActive == 1);
}
}
Хотя IsCmdUIContextActive
возвращает S_OK
, я всегда получаю pfActive как false, даже если окно кода действительно открыто ..
Что я делаю не так?