HKEY_CLASSES_ROOT

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

HKCR

Description

The HKEY_CLASSES_ROOT subtree contains two types of data:

  1. Data that associates file types with programs. The file type subkeys in HKEY_CLASSES_ROOT have the same name as the file name extension for the file type, such as .exe. File type associations are stored in the registry, but you should use Windows Explorer to change them. In Windows Explorer, from the Tools menu, click Folder Options, and then click the File Types tab.

  2. Configuration data for COM objects, Visual Basic programs, or other automation. The configuration subkeys use either the program IDs (such as for COM, Visual Basic, automation, and scripting) or parent keys for other classes of information (such as for CLSID, Interface, TypeLib, AppId, and so on).

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, then it also appears in HKEY_CLASSES_ROOT. If the values of entries in the two Classes subkeys conflict, then 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 only in HKEY_LOCAL_MACHINE\SOFTWARE\Classes. The current, merged configuration lets the system independently register program classes for each user. This feature is known as per-user class registration.

Per-user class registration has several benefits:

  • Multiple users can customize a single computer. For example, one user can install an application that uses a particular file type, and another user can install a different application that uses the same file type without affecting the first user.

  • Roaming class registration. Because class registrations are stored in the user profile, the class registrations are loaded on each computer through the application management extension after the profile is loaded. When the user logs on to a different computer, the registration travels with the user through the directory and is written to a local portion of the user profile.

    Note: Roaming class registration is only available when using Intellimirror Software Management.

  • Increased registry security. Previously, users could change or delete registry keys in HKLM\SOFTWARE\Classes, thus breaking an application or changing its behavior. However, with class information now written to the user profile, a system administrator can limit access to HKLM\SOFTWARE\Classes.

Notes

  • This is a change in functionality from Windows NT 4.0, where HKEY_CLASSES_ROOT was an alias of HKEY_LOCAL_MACHINE\SOFTWARE\Classes.

  • If an entry exists in both HKEY_LOCAL_MACHINE\SOFTWARE\Classes and HKEY_CURRENT_USER\SOFTWARE\Classes, then the value of the entry in HKEY_CURRENT_USER\SOFTWARE\Classes takes precedence.

  • If you create a new key or subkey in HKEY_CLASSES_ROOT, then it will also be created in HKEY_LOCAL_MACHINE\SOFTWARE\Classes. If you create a new entry in this same key or subkey, then 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:

  • If the subkey exists in both HKEY_CURRENT_USER\SOFTWARE\Classes and HKEY_LOCAL_MACHINE\SOFTWARE\Classes, then the entry will appear in that subkey in HKEY_CURRENT_USER\SOFTWARE\Classes only.

  • If the subkey already exists only in HKEY_CURRENT_USER\SOFTWARE\Classes, then the entry will appear in that subkey in HKEY_CURRENT_USER\SOFTWARE\Classes.

  • If the subkey already exists only in HKEY_LOCAL_MACHINE\SOFTWARE\Classes, then the entry will appear in that subkey in HKEY_LOCAL_MACHINE\SOFTWARE\Classes.