We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

IVsComponentSelectorDlg Interface

Adds components to a project.

Namespace:  Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (in Microsoft.VisualStudio.Shell.Interop.dll)

public interface IVsComponentSelectorDlg

The IVsComponentSelectorDlg type exposes the following members.

Public methodComponentSelectorDlgUsed by a package to provide a dialog with which the user can add components to the specified project.

IVsComponentUser is used in conjunction with IVsComponentSelectorDlg. A VSPackage that wants to use the component selector dialog would implement IVsComponentUser and pass it to the SVsComponentSelectorDlg service.

The environment provides the default implementation that is used by the standard Add Reference dialog box.

You implement IVsComponentUser on your hierarchy node, then call IVsComponentSelectorDlg with an appropriate filter from the __VSCOMPSELFLAGS enumeration, pass in your node's IVsComponentUser interface, a GUID_NULL for the show-only page (or GUID_COMPlusPage if that's the one you want on top), null if you want to enumerate on the local machine, an array of VSCOMPONENTSELECTORTABINIT values, your file filter, and a BSTR to set the initial directory and store it on return.

The following steps are for using the IVsComponentUser interface.

  1. The user selects AddReference which calls the Hierarchy's IOleCommandTarget for AddReference.

  2. The command implementation does a QueryService for SVsComponentSelectorDlg to find IVsComponentSelectorDlg and then calls IVsComponentSelectorDlg with its implementation of IVsComponentUser.

  3. The user selects references to add and clicks the Add button on the dialog.

  4. The dialog calls back on addcomponent AddComponent.

  5. The hierarchy's implementation of AddComponent visually adds the reference and physically adds it to the project.

Only projects that support references need to implement this interface.

Notes to Implementers

The environment implements this interface.