HKEY_CLASSES_ROOT is the section of the Registry that controls all the
data files on the
system. It is nearly identical on both Windows NT and Windows 95.
For that reason, there is only one appendix concerning it. The HKEY_CLASSES_ROOT
handle key includes all the file extensions and associations with executable files,
as shown in
Figure C.1. It also determines how an application will react when a document
file is double-clicked.
Figure C.1.
HKEY_CLASSES_ROOT controls data files
and their extensions.
HKEY_CLASSES_ROOT is really just a portion of HKEY_LOCAL_COMPUTER, and settings can be edited in either location, as shown in Figure C.2. As soon as one is changed, the other is also changed. HKEY_CLASSES_ROOT is used, however, to make it easy for programmers to send information during an installation. In Windows NT and Windows 95, HKEY_CLASSES_ROOT is the same as HKEY_LOCAL_MACHINE\Software\Classes. Programmers need not worry about the actual location when developing their startup routines. Instead, they can just send data to HKEY_CLASSES_ROOT.
Figure C.2. HKEY_CLASSES_ROOT and HKEY_LOCAL_MACHINE\Software\Classes are the same.
Table C.1 lists extensions from
HKEY_CLASSES_ROOT in the first column,
and their corresponding file types in the second column. These file types are also
entries in HKEY_CLASSES_ROOT and give more detail about the function of
the files, including their locations
and the launching characteristics.
Table C.1. HKEY_CLASSES_ROOT extensions.
Extension | File Type |
.ADM | ADM_auto_file |
.aif | aifffile |
.aifc | aifffile |
.aiff | aifffile |
.ani | anifile |
.art | artfile |
.au | aufile |
.snd | aufile |
.avi | AVIFile |
.bat | batfile |
.bfc | Briefcase |
.cda | cdafile |
.crt | certificatefile |
.der | certificatefile |
.clp | clpfile |
.cmd | cmdfile |
.com | comfile |
.cpl | cplfile |
.cur | curfile |
.dat | DAT_auto_file |
.dcx | DCXImage.Document |
.dll | dllfile |
.shb | DocShortcut |
.drv | drvfile |
.xla | EXCEL.Addin |
.xlk | Excel.Backup |
.xlc | Excel.Chart.5 |
.csv | Excel.CSV |
.xld | Excel.Dialog |
.dif | Excel.DIF |
.xlb | Excel.Sheet.5 |
.xls | Excel.Sheet.5 |
.slk | Excel.SLK |
.xlt | Excel.Template |
.xlv | Excel.VBAModule |
.xlw | Excel.Workspace |
.xll | Excel.XLL |
.xlm | ExcelMacrosheet |
.exe | exefile |
.fnd | fndfile |
.fon | fonfile |
.gif | giffile |
.goc | gocserve |
.hlp | helpfile |
.ht | htfile |
.htm | htmlfile |
.html | htmlfile |
.ico | icofile |
.inf | inffile |
.ini | inifile |
.url | InternetShortcut |
.job | JobObject |
.jfif | jpegfile |
.jpe | jpegfile |
.jpeg | jpegfile |
.jpg | jpegfile |
.lnk | lnkfile |
.mid | MIDFile |
.mmm | MPlayer |
.rmi | MPlayer |
.gra | MSGraph.Chart.5 |
.grp | MSProgramGroup |
.obd | Office.Binder.95 |
.obt | Office.Binder.Template |
.obz | Office.Binder.Wizard |
.ofn | Office.FileNew |
.bmp | Paint.Picture |
.pbk | pbkfile |
.pcx | PCXImage.Document |
.pma | PerfFile |
.pmc | PerfFile |
.pml | PerfFile |
.pmr | PerfFile |
.pmw | PerfFile |
.pfm | pfmfile |
.pif | piffile |
.mov | PlayerFrameClass |
.pnf | pnffile |
.que | QueueObject |
.ra | RealAudio File |
.ram | RealAudio File |
.reg | regfile |
.rnk | rnkfile |
.scr | scrfile |
.shs | ShellScrap |
.sys | sysfile |
.tif | TIFImage.Document |
.tiff | TIFImage.Document |
.ttf | ttffile |
.DIC | txtfile |
.EXC | txtfile |
.log | txtfile |
.scp | txtfile |
.txt | txtfile |
.pic | ViewerFrameClass |
.vir | virfile |
.vsd | Visio.Drawing.4 |
.vss | Visio.Drawing.4 |
.vst | Visio.Drawing.4 |
.vsw | Visio.Drawing.4 |
.386 | vxdfile |
.wav | WAVFiles |
.ARC | WinZip |
.ARJ | WinZip |
.gz | WinZip |
.LZH | WinZip |
.tar | WinZip |
.taz | WinZip |
.tgz | WinZip |
.z | WinZip |
.zip | WinZip |
.wll | Word.Addin |
.wbk | Word.Backup |
.rtf | Word.RTF |
.DOT | Word.Template |
.wiz | Word.Wizard |
.doc | WordDocument |
.wri | wrifile |
.xbm | xbmfile |
.xif | XIfImage.Document |
Extension | Description |
.ai | postscript file |
.css | text/css file |
.eps | postscript file |
.fif | fractal file |
.hqx | Macintosh binary file |
.latex | x-latex file |
.man | x-troff-man file |
.movie | x-sgi-movie file |
.mpe | video/mpeg file |
.mpeg | video/mpeg file |
.mpg | video/mpeg file |
.PS | postscript file |
.qt | video/quicktime file |
.rpm | real audio plug-in |
.sit | x-stuffit file |
.wrl | x-world/x-vrml file |
Everything in Windows NT is dealt with as a number instead of as a name. People, however, tend to deal with things by name. CLSID is where all the numbers are listed for icons, applications, directories, file types, and more. Each one must be unique, and is assigned to the manufacturer by Microsoft. The manufacturer then puts the CLSID into the installation program files so it can update the Registry upon installation.
The Registry is the database that applications turn to when they need instructions about what to do. For example, assume you have a Microsoft Word 7 document with an embedded Excel 7 spreadsheet. When you double-click the spreadsheet inside Word, the application menus change to Excel menus and the spreadsheet is ready to edit, just as if you were in Excel. How does it know to do that? Every file created by Excel 7 has Excel's CLSID attached. Word reads the CLSID, goes to the Registry for instructions, and launches .DLL files or the application, depending on the data under the CLSID.
If the embedded spreadsheet is from Excel 5 (and a later version is not on the system), the reaction to the double-click is different. Each version of each software has a different CLSID.
The CLSID key also includes information about other properties of the application or function. For example, the CLSID key for a .BMP (Paintbrush picture) extension lists the file type, the default applications used for editing, running, or printing the document, the default icons, and other information required for correct use of the file. Figure C.3 shows the type of numbers used for a CLSID. Although the number types may all look the same in the graphic, they are actually quite different. Each is a 128-bit unsigned integer, and has a combination of letters and numbers assigned to each specific item.
Figure C.3. CLSID numbers in HKEY_CLASSES_ROOT.
One way to improve performance using the Explorer interface is to set the menus to your preference. When you right-click just about anything in NT or Windows 95, you get a menu of choices on the screen (as shown in Figure C.4). Because the function is part of Explorer, you get a drop-down context-sensitive menu when you click anything that uses the Explorer functions. Included are the desktop, icons, anything in the Explorer application (see Figure C.5), My Computer, and the Open and Save functions in 32-bit applications.
Figure C.4. Context-sensitive menu at the desktop.
Figure C.5. Context-sensitive menu in Explorer.
TIP: To learn more about something you see on the desktop, right-click it and select Properties from the menu. You can then see the settings and details for the item, and you may even be able to change the nature of the item directly from there. Right-clicking the My Computer icon takes you to the SYSTEM functions of the Control Panel. Right-clicking the Network Neighborhood icon takes you to the NETWORK applet in the Control Panel.
Selecting the new option pops up an additional menu of choices, as shown in Figure C.6. The choices above the line (Folder and Shortcut) are set by Explorer and cannot be changed. The items below the line are added when an application is installed. Some applications are installed with Windows NT, and others are installed by the user.
Figure C.6. Pop-up menu for creating new items.
To create a text document, right-click, select New, then click Text Document. If
you are at the desktop, a new document is created on the desktop. If you are in another
folder, a new text document is created in that folder (as shown in Figure C.7).
Figure C.7. A new text document in the My Documents folder.
Most of the file types are helpful, but what about Briefcase or Wave Sound? If you
do not find a file type to be useful, you can remove it from your menu, thus streamlining
your menus and saving you time.
Wave Sound is on the menu because of a key in HKEY_CLASSES_ROOT.
In HKEY_CLASSES_ROOT, the extension for a wave sound is listed as .WAV.
Notice the plus sign (+) in the folder icon next to the listing (as shown in Figure
C.8).
Figure C.8. The .WAV extension in HKEY_CLASSES_ROOT.
When the tree is expanded
to show the contents of the .WAV key, the ShellNew
subkey is shown. (See Figure C.9.) Delete the ShellNew key to see the menu
shown in Figure C.10 (note that there is no option for creating a new Wave Sound).
Figure C.9. The ShellNew key under .WAV in HKEY_CLASSES_ROOT.
Figure C.10. The modified New menu.
Use this procedure to remove any items in the context-sensitive New menu, thus streamlining
your menus and improving your performance.
The opposite function, adding to context-sensitive menus, is also available by editing HKEY_CLASSES_ROOT. For any item you want to create, find the file extension in the list. Add a key called ShellNew; in it, add a REG_SZ value called NullFile. When it asks for the string, do not add anything. Simply click OK to continue. The context menu pulls the name of the data file from the Registry and lists it with the others in the menu. The new file will be blank.
To associate a data file with a particular application, double-click the data file. If the data file is not already associated with an application, NT opens the dialog box shown in Figure C.11. Choose the application to be associated with the extension, select the Always use this program to open this file check box, and click OK. Every time a file with the same extension in activated, NT runs the associated application.
Figure C.11. Associating a data file with an application.
What if you accidentally select the wrong application? Every time you double-click
the file, it runs the wrong program. What if you
change text editors, and you don't
want all your text files to be edited with NOTEPAD.EXE? You could edit the
HKEY_CLASSES_ROOT handle key in the Registry, or use a feature in Explorer.
Hold the Shift key down and right-click the
data file. Select Open With, and then
scroll to the correct application to be associated with the data file.
Besides extensions and file types associated with those extensions, there are many more items in HKEY_CLASSES_ROOT. All of these items are details for NT, the interface, and applications to be run. You would normally edit only a very few of these items. Everything but the context menu tips included here is changed only by installing applications, by setting modifications inside applications, or by creating associations.
You couldn't run the system without HKEY_CLASSES_ROOT; you just hardly ever edit it manually. HKEY_CLASSES_ROOT is one of the main reasons you need the Registry: for the control of applications and the operating system. Given the sheer size and complexity of this handle key, it is no wonder that SYSTEM.INI and WIN.INI were no longer sufficient.
© Copyright, Macmillan Computer Publishing. All rights reserved.