Implementing the IVsPackage Interface
All VSPackages must implement the IVsPackage interface. Visual Studio calls the methods of IVsPackage to initialize and close VSPackages, to get associated property pages, and for other reasons. The IVsPackage interface is the gateway interface between Visual Studio and a VSPackage.
For an example of how to implement the IVsPackage interface with COM programming, see the Reference.Package (C+).
You can write a managed VSPackage as a subclass of the Package class, which implements IVsPackage on your behalf. For more information, see Managed VSPackages.
Note
Much of the unmanaged sample code in the Visual Studio Integration section of the Visual Studio SDK uses the Active Template Library (ATL). You do not need to use ATL to create VSPackages, but you must understand ATL to understand the sample code.