Skip to content

Latest commit

 

History

History
59 lines (48 loc) · 4.97 KB

interfaces_defined_on_IVsProject_object.md

File metadata and controls

59 lines (48 loc) · 4.97 KB

Interfaces defined on IVsProject object

CPS's implementation of the IVsProject object is the main presentation of the project in the Visual Studio IDE, and also the main entry point for other components to interact with the project. It implements a bunch of interfaces. Some of them are mandatory to be implemented on a project, some of them are optional but nice to have, and some of them are for internal purposes. I am going to list and categorize most of the interfaces except the ones for internal usage. Hopefully, this will demonstrate what could be expected from the IVsProject object. Noting all the interfaces below are designed for other Visual Studio components to interact with the project. CPS extensions should use CPS APIs.

The Visual Studio COM interfaces that people would expect from the IVsProject object in general:

The extended Visual Studio COM interfaces:

The drag/drop Visual Studio COM interfaces:

This CPS interface is designed as the entry point for other Visual Studio components to get into CPS world.

  • IVsBrowseObjectContext

The additional Visual Studio COM interfaces for variant purposes: