2010-09-13 2 views
1

В настоящее время я пытаюсь создать надстройку, которая похожа на VSNewFile. Таким образом, это просто расширение, которое обеспечивает более быстрый способ создания новых файлов. Проблема с VSNewFile заключается в том, что она не работает для проектов на C++, и мне это нужно.

вот моя проблема:
Я не могу получить абсолютный путь к выбранному каталогу. Все образцы, которые я нашел, были примерно такими:
(string)((ProjectItem)parent).Properties.Item("FullPath").Value;

Пока он работает в проекте C#, он не находится в проекте на C++. В проекте C++ selectedItem.Project и selectedItem.ProjectItem оба являются null, когда я выбираю каталог.

Важно: Я не говорю о фильтрах! Я имею в виду настоящие справочники.

Любая помощь приветствуется. Я искал часы сейчас без успеха.
БлагодаряРазработка надстройки Visual Studio - Получить путь к каталогу в проекте C++

ответ

0

Может быть, это поможет кому-то, кто получил такую ​​же проблему:
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; 
}