2010-09-13 90 views
1

我目前正在嘗試構建一個與VSNewFile類似的加載項。所以這只是一個簡單的擴展,它提供了一種創建新文件的更快方法。 VSNewFile的問題是它不適用於C++項目,我需要它。

這是我的問題:
我無法檢索選定目錄的絕對路徑。我發現的所有樣本都是這樣的:
(string)((ProjectItem)parent).Properties.Item("FullPath").Value;

雖然這是在C#項目中工作,但它不在C++項目中。在C++項目selectedItem.ProjectselectedItem.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; 
} 
相關問題