TOC BACK FORWARD

Troubleshooting and Configuring
the Windows NT/95 Registry

- C -

A Closer Look at HKEY_CLASSES_ROOT

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


Other extensions listed in HKEY_CLASSES_ROOT can be found in Table C.2. They have no corresponding entries in the Registry because they have not yet been associated with an application. The descriptions listed here do not have specific Registry entries.

Table C.2. Unassociated extensions.
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

CLSID

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.


Streamlining Your Context-Sensitive Menus with 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.

Adding to Your Context-Sensitive Menus with HKEY_CLASSES_ROOT

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.

Associating a Data File with an Application

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.

Summary

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.

TOC BACK FORWARD

© Copyright, Macmillan Computer Publishing. All rights reserved.