A control is usually provided as an in-process server (.DLL), although it can also be a local or remote server (.EXE).
A control typically supports self-registration and creates a set of registry entries when it is instantiated. A control can also be licensed to prevent unauthorized use. See The Component Object Model chapter for more information on self registration and licensing.