1. Computing



Definition: HKEY_CLASSES_ROOT is a registry hive in the Windows Registry and contains file extension association information, as well as programmatic identifier (ProgID), Class ID (CLSID), and Interface ID (IID) data.

In the simplest terms possible, the HKEY_CLASSES_ROOT registry hive contains the information necessary so Windows knows what to do when you ask it to do something, like view the contents of a drive, or open a certain type of file, etc.

The list of registry keys under the HKEY_CLASSES_ROOT hive is very long, and just as confusing. I can't explain each of the thousands of keys you might see, but I can break it down in to some manageable pieces, which will hopefully clarify this part of the registry a bit.

Here are some of the many file extension association keys you'll find under the HKEY_CLASSES_ROOT hive, most of which will be begin with a period:

  • ...

Each of these registry keys stores information as to what Windows should do when you double-click on a file with that extension.

For example, on my computer, when you double-click on a file by the name of nonowrimodraft.rtf, WordPad opens the file. The registry data that makes that happen is stored in the HKEY_CLASSES_ROOT\.rtf key.

Warning: Due to the complexity of how HKEY_CLASSES_ROOT keys are setup, I don't recommend that you change default file associations from here. See How To Change the Default Program for a Specific File Extension for instructions on doing this from within a normal Windows interface.

The remainder of the keys in HKEY_CLASSES_ROOT are ProgID, CLSID, and IID keys. Here are some examples of each:

ProgID keys are located in the root of HKEY_CLASSES_ROOT, alongside the file extension associations discussed above:

  • HKEY_CLASSES_ROOT\FaxServer.FaxServer
  • HKEY_CLASSES_ROOT\WindowsMail.Envelope
  • ...

All CLSID keys are located under the CLSID subkey:

  • HKEY_CLASSES_ROOT\CLSID\{00000106-0000-0010-8000-00AA006D2EA4}
  • HKEY_CLASSES_ROOT\CLSID\{06C792F8-6212-4F39-BF70-E8C0AC965C23}
  • HKEY_CLASSES_ROOT\CLSID\{FA10746C-9B63-4b6c-BC49-FC300EA5F256}
  • ...

All IID keys are located under the Interface subkey:

  • HKEY_CLASSES_ROOT\Interface\{0000000d-0000-0000-C000-000000000046}
  • HKEY_CLASSES_ROOT\Interface\{00000089-0000-0010-8000-00AA006D2EA4}
  • HKEY_CLASSES_ROOT\Interface\{00000129-0000-0000-C000-000000000046}
  • ...

What ProgID, CLSID, and IID keys are for are related to some very technical aspects of computer programming and are beyond the scope of this discussion. However, you can read more about all three here, here, and here, respectively.

Important: The HKEY_CLASSES_ROOT hive is actually combined data found in both the HKEY_LOCAL_MACHINE hive (HKEY_LOCAL_MACHINE\Software\Classes) and the HKEY_CURRENT_USER hive (HKEY_CURRENT_USER\Software\Classes). If a registry key resides in both locations, but conflicts in some way, the data found in HKEY_CURRENT_USER\Software\Classes is used in HKEY_CLASSES_ROOT.

HKEY_CLASSES_ROOT can be accessed by clicking on the HKEY_CLASSES_ROOT hive on the left panel in Registry Editor.

Also Known As: HKCR
"For some reason, I couldn't remove the file extension association for the .abc file type so I looked it up in HKEY_CLASSES_ROOT and removed it."

©2014 About.com. All rights reserved.