private IProjectManager GetProjectManagerForFileImpl(string filePath) { var hier = new RunningDocumentTable(serviceProvider).GetHierarchyItem(filePath); if (hier == null) { return(null); } object value; if (ErrorHandler.Failed(hier.GetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_TypeName, out value))) { return(null); } if (value.ToString() != BooProjectNode.PROJECT_NAME) { return(null); } if (ErrorHandler.Failed(hier.GetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_Root, out value))) { return(null); } var pointer = new IntPtr((int)value); try { return(Marshal.GetObjectForIUnknown(pointer) as IProjectManager); } finally { Marshal.Release(pointer); } }
private IProjectManager GetProjectManagerForFileImpl(string filePath) { var hier = new RunningDocumentTable(serviceProvider).GetHierarchyItem(filePath); if (hier == null) return null; object value; if (ErrorHandler.Failed(hier.GetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_TypeName, out value))) return null; if (value.ToString() != BooProjectNode.PROJECT_NAME) return null; if (ErrorHandler.Failed(hier.GetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_Root, out value))) return null; var pointer = new IntPtr((int)value); try { return Marshal.GetObjectForIUnknown(pointer) as IProjectManager; } finally { Marshal.Release(pointer); } }