The Visual Studio Library, which I will hereafter refer to as VSL, is a C++ source code library whose purpose is to simplify creating a Visual Studio Integration Package (VS Package) that ships in the Visual Studio SDK, which I will hereafter refer to as the VS SDK.  Like WTL, VSL is distributed solely in header files without any binary libraries that need to be linked to.  Like STL, the broader C++ Standard Library, ATL, and WTL, VSL makes use of C++ templates and C pre-processor macros extensively.  Unlike MFC, the Managed Package Framework (MPF), or the .Net Framework, VSL is not a framework, but is a collection of loosely coupled classes.  As such, VSL’s structure doesn’t offer much implicit guidance on how to create common VS integrations like a VS Tool Window or a VS Document \ VS Editor; however, samples are included in the VS SDK that show one possible usage of VSL to create those VS component patterns.


VSL currently provides aid with the following:

  • Error and exception handling
  • Unit testing
  • Functors and delegates
  • Comparing various things
  • Managing resources
  • Command handling
  • The basics necessary to create a VS Package
  • VS Service consumption
  • Creating a VS Window that hosts a dialog or Win32 control
  • Creating a VS Document / VS Editor
  • Automation and VS Macro recording

Next up:  Visual Studio Library (aka VSL):  Guiding Principles