Разработка надстроек Visual Studio - получение пути к каталогу в проекте C ++ - PullRequest
1 голос
/ 13 сентября 2010

Я сейчас пытаюсь создать надстройку, похожую на VSNewFile .Так что это просто простое расширение, которое обеспечивает более быстрый способ создания новых файлов.Проблема с VSNewFile состоит в том, что он не работает для проектов C ++, и мне это нужно для этого.Вот моя проблема:Я не могу получить абсолютный путь к выбранному каталогу.Все образцы, которые я нашел, были примерно такими:(string)((ProjectItem)parent).Properties.Item("FullPath").Value;Хотя это работает в проекте C #, его нет в проекте C ++.В проекте C ++ selectedItem.Project и selectedItem.ProjectItem оба null, когда я выбираю каталог. Важно: Я не говорю о фильтрах!Я имею в виду настоящие каталоги.Любая помощь приветствуется.Я искал часы безуспешно.Спасибо

1 Ответ

0 голосов
/ 20 сентября 2010

Может быть, это поможет всем, у кого возникла такая же проблема:
http://social.msdn.microsoft.com/forums/en-US/vsx/thread/bd738463-ba24-4880-beea-f3ec110d981e

// Subscribe to the SVsShellMonitorSelection service somewhere:  
public void mySetupMethod()  
{  
     IVsMonitorSelection monitorSelection = 
     (IVsMonitorSelection)Package.GetGlobalService(
     typeof(SVsShellMonitorSelection));     
     monitorSelection.AdviseSelectionEvents(this, out cookie);    
}  

// This class (as used in AdviseSelection) must implement the IVsSelectionEvents interface  
// To get the folder path use the following  
public int OnSelectionChanged(IVsHierarchy pHierOld, uint itemidOld,   
  IVsMultiItemSelect pMISOld, ISelectionContainer pSCOld,   
  IVsHierarchy pHierNew, uint itemidNew, IVsMultiItemSelect pMISNew, ISelectionContainer pSCNew)  
{  
  string fullPath;  
  // Get the full path
  pHierNew.GetCanonicalName(itemidNew, out fullPath);  

  // Do something with the path...  
  return VSConstants.S_OK;  
}  
...