The Microsoft Windows 95 user interface is extensible, giving you, as an application developer, access to tools that manipulate objects in the shell name space (which is discussed in detail in Chapter 14). You also have the ability to browse through the file system and networks. If you like, for example, you can create a user interface extension that adds items to the context menu of a specific file type or an extension that lets you assign an icon to a certain file type. This chapter explains the user interface extensions (often called shell extensions) and how to implement them. This discussion assumes that you have read Chapter 12, covering file viewers, and that you have at least a minimal understanding of the Component Object Model (COM).
The Windows 95 user interface supports seven types of user interface extensions (referred to as handlers):
Like file viewers, all user interface extensions are implemented as COM objects. Once you understand the basics of how to implement COM objects, you'll need relatively little additional information to implement a user interface extension.
I wrote two user interface extension samples in MFC: PROPEXT (a property sheet handler) and CTXTMENU (a context menu handler). If you don't use MFC, you'll want to look at SHELLEXT (written by Greg Keyser), a sample from the Win32 SDK that demonstrates how to create various user interface extensions. (I included this sample on the companion disc.)