Classes and Servers
COM uses HKEY_CLASSES_ROOT for computer-wide settings but also allows per-user configuration of CLSIDS for greater security and flexibility. COM first consults HKEY_CURRENT_USER\Software\Classes before looking under HKEY_CLASSES_ROOT. COM keeps computer-wide information related to CLSIDs under HKEY_CLASSES_ROOT\CLSID and keeps per-user class information under HKEY_CURRENT_USER\Software\Classes\CLSID.
COM servers support self-registration. For an in-process server, this means that the DLL must export the following functions:
You must explicitly export these functions by using a module definition file, linker switches, or compiler directives. The class store uses these functions to configure the local registry after downloading the file to the client machine. In addition to class store, these functions are also used by other environments to install servers on host computers.