HKEY_CLASSES_ROOT

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 either use the program IDs (such as for COM, VB, 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, it also appears in 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 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. For more information about Intellimirror, see Windows 2000 Server Help or Windows 2000 Professional Help.

  • Increased registry security. Previously, users could change or delete registry keys under 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.

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 .

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 takes 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:

  • If the subkey exists in both HKEY_CURRENT_USER\SOFTWARE\Classes and HKEY_LOCAL_MACHINE\SOFTWARE\Classes, 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, 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, the entry will appear in that subkey in HKEY_LOCAL_MACHINE\SOFTWARE\Classes.