http://blogs.clariusconsulting.net/pga

Pablo Galiano's Blog

Go Back to
pga′s Latest post

How do I obtain an IVsHierarchy itemid

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

Comments

2 Comments

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

  2. Музыкальный сайт. Скачать музыку 2012 бесплатно новинки музыки 2011-2012