IVsLibrary Interface


This core interface describes the library and is used by the Object Manager to access symbols pertinent to it.

public interface IVsLibrary


The smallest unit that can be browsed by a library is referred to as a Browse Container. A library typically browses one type of Browse Container. Each project type implements one, and possibly more, libraries to track its symbols, objects, and so on. The package's IVsLibraryMgr tracks these libraries. Libraries may be project specific, or global. Global libraries provide information on browse containers that are not a part of any project, but are added by a user through the Add Reference dialog. For more details on libraries and their relationship to the object browser see Object Browser and Class View.

See illustrations of the implementation and/or calling of this interface in the sample My C Package.

Notes to Implementers

The IVsLibrary interface has been deprecated. Implement instead IVsLibrary2

Notes to Callers

Called by the environment's object manager to obtain information about the library and its contents.


AddBrowseContainer(VSCOMPONENTSELECTORDATA[], UInt32, String)

Adds a browse container to be browsed by the library.

GetBrowseContainersForHierarchy(IVsHierarchy, UInt32, VSBROWSECONTAINER[], UInt32[])

Returns an array of Browse Containers that correspond to the given IVsHierarchy.


Returns a pointer to the GUID of the library.


Returns flags associated with the library.

GetLibList(LIB_PERSISTTYPE, IVsLiteTreeList)

Returns the list of browse containers currently being browsed by the library as an IVsLiteTreeList interface.

GetList(UInt32, UInt32, VSOBSEARCHCRITERIA[], IVsObjectList)

Returns the requested list of symbols as an IVsObjectList interface.


Returns the string used to separate symbols for this type of Browse Container.

GetSupportedCategoryFields(LIB_CATEGORY, UInt32)

Returns the category values supported by the library for a specified category.


Asks the library to load its persisted global Browse Containers.

RemoveBrowseContainer(UInt32, String)

Removes a Browse Container being browsed by the library.


Asks the library to save its persisted global Browse Containers.


Returns the current change counter for the library and is used to indicate that the library contents have changed.

Applies to