IVsSolution Interface


Provides top-level manipulation or maintenance of the solution.

public interface class IVsSolution
public interface class IVsSolution
__interface IVsSolution
public interface IVsSolution
public interface IVsSolution
type IVsSolution = interface
type IVsSolution = interface
Public Interface IVsSolution


A project reference is a string value that is used as a unique project identifier and that is independent of which solution uses the project. The project reference is composed of the following:

  • Path

  • Project name

  • Project type

  • Project GUID

  • Project type GUID

Each __VSPROPID must return a VARIANT structure filled with the proper VT_ type. The caller may assume that the VT_ is correct; that there is no need to call VariantChangeType, or to verify the type, beyond an ASSERT to make sure there weren't header file mismatches and related problems.

This same logic applies to the caller when setting the property. The solution will assume that the caller has passed a VARIANY already converted to the proper VT_ type.

Notes to Callers

Called to manage solutions. IVsSolution is implemented by the environment through the SVsSolution service.


AddVirtualProject(IVsHierarchy, UInt32)

Adds a type of virtual project that is not created by clicking Open Project on the New menu to open the solution.

AddVirtualProjectEx(IVsHierarchy, UInt32, Guid)

Assigns the original GUID to the project when it is recreated the next time the solution is opened.

AdviseSolutionEvents(IVsSolutionEvents, UInt32)

Establishes client notification of solution events.

CanCreateNewProjectAtLocation(Int32, String, Int32)

Determines whether a new project can be created at a given location.

CloseSolutionElement(UInt32, IVsHierarchy, UInt32)

Programmatically closes a document, a project, or the entire solution.

CreateNewProjectViaDlg(String, String, UInt32)

Controls options for the Create New Project dialog box.

CreateProject(Guid, String, String, String, UInt32, Guid, IntPtr)

Creates or opens a project.

CreateSolution(String, String, UInt32)

Creates a new solution.

GenerateNextDefaultProjectName(String, String, String)

This method obtains the default name for the next project in the solution (ProjectN).Generates the next default project name given a specific path.

GenerateUniqueProjectName(String, String)

Generates a unique project name, given a root project name.

GetGuidOfProject(IVsHierarchy, Guid)

Returns the unique identifier for a project in the solution.

GetItemInfoOfProjref(String, Int32, Object)

Obtains the required property for the specified project item reference.

GetItemOfProjref(String, IVsHierarchy, UInt32, String, VSUPDATEPROJREFREASON[])

Returns a hierarchy and hierarchy item pair for the specified project reference string.

GetProjectEnum(UInt32, Guid, IEnumHierarchies)

Returns an enumerator for all the projects in the solution.

GetProjectFactory(UInt32, Guid[], String, IVsProjectFactory)

Returns a project factory.

GetProjectFilesInSolution(UInt32, UInt32, String[], UInt32)

Compiles a list of the specified projects in the solution.

GetProjectInfoOfProjref(String, Int32, Object)

Obtains the required property for the specified project reference.

GetProjectOfGuid(Guid, IVsHierarchy)

Returns the project in the solution, given a unique identifier.

GetProjectOfProjref(String, IVsHierarchy, String, VSUPDATEPROJREFREASON[])

Returns a hierarchy for the specified project reference string.

GetProjectOfUniqueName(String, IVsHierarchy)

Returns the project in the solution, given a unique name.

GetProjectTypeGuid(UInt32, String, Guid)

Returns the project type, given a GUID.

GetProjrefOfItem(IVsHierarchy, UInt32, String)

Returns a project reference string for the specified hierarchy and hierarchy item pair.

GetProjrefOfProject(IVsHierarchy, String)

Returns a project reference string for the specified hierarchy.

GetProperty(Int32, Object)

Returns the specified property of the solution.

GetSolutionInfo(String, String, String)

Returns the required solution file information.

GetUniqueNameOfProject(IVsHierarchy, String)

Returns the unique name, given a project in the solution.

GetVirtualProjectFlags(IVsHierarchy, UInt32)

Determines how the virtual project was added to the Solution Explorer.

OnAfterRenameProject(IVsProject, String, String, UInt32)

Completes the renaming of a project.

OpenSolutionFile(UInt32, String)

Opens a solution file of the type .sln, .dsw, or .vbg.

OpenSolutionViaDlg(String, Int32)

Controls options for the Open Solution dialog box.


Determines whether the solution file can be changed.

QueryRenameProject(IVsProject, String, String, UInt32, Int32)

Determines whether the project can be renamed.

RemoveVirtualProject(IVsHierarchy, UInt32)

Removes a virtual project from the solution.

SaveSolutionElement(UInt32, IVsHierarchy, UInt32)

Programmatically saves a document, a project, or the entire solution.

SetProperty(Int32, Object)

Generically sets properties of the solution.


Disables a client from receiving notifications of solution events.

Applies to