Platform SDK: Registry |
Starting with Windows 2000, class registration and file extension information is stored under both the HKEY_LOCAL_MACHINE key and the HKEY_CURRENT_USER key. The HKEY_LOCAL_MACHINE\Software\Classes key contains default settings that can apply to all users on the local computer. The HKEY_CURRENT_USER\Software\Classes key contains settings that apply only to the interactive user. The HKEY_CLASSES_ROOT key provides a view of the registry that merges the information from these two sources.
The RegOpenUserClassesRoot function provides a similar merged view for processes, such as Win32 services, that are dealing with clients other than the interactive user. In this case, the view merges the HKEY_LOCAL_MACHINE\Software\Classes information with the information from the Software\Classes key of the user's registry hive.
The system uses the following rules to merge information from the two sources:
The following example shows a set of subkeys under the HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER keys and the resulting merged view of HKEY_CLASSES_ROOT.
HKEY_LOCAL_MACHINE\Software\Classes
\CLSID
\2
\4
\localserver32
\inprocserver32
\7
HKEY_CURRENT_USER\Software\Classes
\CLSID
\1
\4
\localserver
\6
\10
\localserver
HKEY_CLASSES_ROOT
\CLSID
\1
\2
\4
\localserver
\6
\7
\10
\localserver
The following subkeys are found in both HKEY_LOCAL_MACHINE\Software\Classes and HKEY_CURRENT_USER\Software\Classes. From the HKEY_LOCAL_MACHINE tree, the immediate subkeys of these keys are included in the merged view only if they are not duplicates of immediate subkeys from the HKEY_CURRENT_USER tree. The merged view does not include the HKEY_LOCAL_MACHINE contents of duplicate subkeys.
\* \*\shellex \*\shellex\ContextMenuHandlers \*\shellex\PropertyShellHandlers \AppID \ClsID \Component Categories \Drive \Drive\shellex \Drive\shellex\ContextMenuHandlers \Drive\shellex\PropertyShellHandlers \FileType \Folder \Folder\shellex \Folder\shellex\ColumnHandler \Folder\shellex\ContextMenuHandlers \Folder\shellex\ExtShellFolderViews \Folder\shellex\PropertySheetHandlers \Installer\Components \Installer\Features \Installer\Products \Interface \Mime \Mime\Database \Mime\Database\Charset \Mime\Database\Codepage \Mime\Database\Content Type \Typelib)