HKEY_CLASSES_ROOT

HKCR

Description

The HKEY_CLASSES_ROOT subtree contains two types of data:

The content of HKEY_CLASSES_ROOT comes from two sources, HKEY_LOCAL_MACHINE\SOFTWARE\Classes and HKEY_CURRENT_USER\SOFTWARE\Classes. If a subkey or entry appears in either location, it also appears HKEY_CLASSES_ROOT. If the values of entries in the two Classes subkeys conflict, only the value in HKEY_CURRENT_USER\SOFTWARE\Classes appears in HKEY_CLASSES_ROOT.

In Windows NT 4.0 and earlier, HKEY_CLASSES_ROOT displayed the data in HKEY_LOCAL_MACHINE\SOFTWARE\Classes only. The current merged configuration lets the system register program classes independently for each user. This feature is known as per-user class registration.

Per-user registration has several benefits:

Note Image Note

This is a change in functionality from Windows NT 4.0, where HKEY_CLASSES_ROOT was an alias of HKEY_LOCAL_MACHINE\SOFTWARE\Classes. For more information about HKEY_CLASSES_ROOT, see the COM Programmer's Reference and the Automation Programmer's Reference in the Platform Software Development Kit at http://msdn.microsoft.com.

If an entry exists in both HKEY_LOCAL_MACHINE\SOFTWARE\Classes and HKEY_CURRENT_USER\SOFTWARE\Classes, the value of the entry in HKEY_CURRENT_USER\SOFTWARE\Classes will take precedence.

If you create a new key or subkey in HKEY_CLASSES_ROOT, it will also be created in HKEY_LOCAL_MACHINE\SOFTWARE\Classes. If you create a new entry in this same key or subkey, that entry will also appear in that key or subkey in HKEY_LOCAL_MACHINE\SOFTWARE\Classes.

If you create a new entry in an existing subkey, where that entry will appear depends on whether the subkey already exists in HKEY_LOCAL_MACHINE\SOFTWARE\Classes or HKEY_CURRENT_USER\SOFTWARE\Classes: