My fifteenth How do I is up.
Scenario
Several methods in the VS Interop world receive a IVsHierarchy item id parameter as an argument.
The problem is that there is no easy way to obtain the item id for a IVsHierarchy. Ideally we would like to do IVsHierarchy.GetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_ItemId, out itemId) but that property doesn’t exist.
The focus of this How do I tackles this scenario.
Interfaces and classes needed
Code snippet
public uint GetItemId(IVsHierarchy hierarchy)
{
object extObject;
uint itemId = 0;
IVsHierarchy tempHierarchy;
hierarchy.GetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_BrowseObject, out extObject);
IVsBrowseObject browseObject = extObject as IVsBrowseObject;
if(browseObject != null)
{
browseObject.GetProjectItem(out tempHierarchy, out itemId);
}
return itemId;
}
Assemblies needed
- Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Stay tuned,
Pablo


ПАО “МИРНОДОЛИНСКИЙ ОПЫТНО-ЭКСПЕРИМЕНТАЛЬНЫЙ ЗАВОД”. Производство нестандартизированного, теплообменного емкостного, оборудования, циклонов, аппаратов взп и воздухосборников, оборудование для пивоварения. аппарат ВЗП
Музыкальный сайт. Скачать музыку 2012 бесплатно новинки музыки 2011-2012