Shell Extensions

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

  • Icon handlers

  • Property sheet handlers

  • Drop handlers

  • Data handlers

There are also two types of handlers that are associated with file operations like copying, moving, renaming, and deleting:

  • Copy hook handlers

  • Drag-and-drop handlers

Context Menu Handler

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.

Context menus provide a means for additional file processing from within the shell

Figure 3-1. Context menus provide a means for additional file processing from ...

Get VB Shell Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.