Every file object visible in the shell is a member of a file class and can be programmatically extended by a shell extension. There are certain predefined actions that determine which shell extensions will be invoked. These actions include things like right-clicking, copying, moving, dragging, cutting, pasting, and even displaying an icon for a file. Shell extension handlers are in-process COM servers that implement a variety of interfaces, depending on the type of handler being implemented. There are five handlers that perform actions based on a specific file type:
Context menu handlers
Property sheet handlers
There are also two types of handlers that are associated with file operations like copying, moving, renaming, and deleting:
Copy hook handlers
A context menu is the menu that appears when a file is right-clicked. A sample context menu is shown in Figure 3.1. Every item in the shell has an associated context menu. This menu provides the means to perform generic operations such as copying, moving, deleting, and renaming file objects.
A context menu handler allows items to be added to this menu for a specific file object. This allows custom processing to be performed on the file object via the menu selection.
Figure 3-1. Context menus provide a means for additional file processing from ...