Add-ins are tools that you create programmatically using objects and collections in the extensibility model to customize and extend the development environment. In a sense, add-ins are time and labor saving automation tools that "snap-in" to the integrated development environment (IDE).
The primary goal of an add-in is to enable you to automate a task in the development environment that is difficult, or tedious and time consuming to accomplish manually. There are four types of add-ins: add-ins, Wizards, utilities, and builders:
Add-in is the generic term for any ActiveX DLL or Exe which supports the IDTExtensibility2 interface, and can be loaded by the development environment.
A Wizard is an ActiveX DLL or Exe which leads a user step-by-step through a task, often an especially complex or tricky one. Although they can be constructed any way you like, Microsoft implements its Wizards in a specific manner. A Microsoft Wizard consists of a number of frames, each frame containing an image in the upper left corner, a label description to the right of the image which may also contain instructions, and an optional area near the bottom in which other controls can be placed.
A utility is an add-in, sometimes a rather large one, which doesn't necessarily require the environment to run. This means that it is compiled as an ActiveX executable, but it retains the ability to also be called as an add-in in the development environment.
A builder is a type of add-in that watches the IDE for user-triggered events, (adding a new component to the current project, adding a new control to the Toolbox, adding a new control to a form, and so on), and then reacts by bringing up a series of screens to help ease the task which raised the event. This type of add-in is generally not triggered by an explicit request on the part of the user - it is activated by some event. Builders also don't usually have a wizard-style interface.
Add-ins don't necessarily have to be visible รน they can sit hidden in the background and respond to events such as the sizing of a window. Or they may be entirely visual; for example they may resize a group of like objects when the user sizes only one of the objects.