internal static VSITEMEX GetParentItemEx(this VSITEMEX vsItemEx, bool bForce = false) { if (!bForce && vsItemEx.vsParentItem != null) { return(vsItemEx.vsParentItem); } VSITEMEX vsParentItem = null; uint parentId = vsItemEx.GetParentID(); if (parentId == VSConstants.VSITEMID_NIL) { vsItemEx.vsParentItem = null; return(null); } uint parentHierId = vsItemEx.GetParentHierarchyID(); IVsHierarchy vsParent = vsItemEx.GetParentHierarchy(); if (vsParent == null) { return(null); } vsParentItem = new VSITEMEX(vsParent, parentId); vsParentItem.GetCanonicalName(); vsItemEx.vsParentItem = vsParentItem; return(vsParentItem); }
public static IVsSolution GetParentSolution(VSITEMEX vsItemEx) { IVsSolution vsSolution = null; if (!VSITEMEX.IsItemIDReal(vsItemEx.itemid)) { vsItemEx.ParseCanonical(); } IVsHierarchy vsParentHier = vsItemEx.GetParentHierarchy(); if (vsParentHier is IVsSolution) { vsSolution = vsParentHier as IVsSolution; } return(vsSolution); }