Registering Shell Extensions
A shell extension must be registered in the registry database. The class
identifier of each handler must be registered under the
HKEY_CLASSES_ROOT\CLSID key. The
CLSID key contains a list of class identifier key values, such as
{00030000-0000-0000-C000-000000000046}. Each class identifier key is a globally unique
identifier (GUID) generated by the UUIDGEN tool. Within each class identifier key, the
handler adds an
InProcServer32 key that gives the location of the handler's DLL. It is best to give the
complete path for the handler; using the complete path keeps the handler
independent of the current path and speeds up the load time for the DLL.
The information that the shell uses to associate a shell extension handler
with a file type is stored under the
shellex key. The shell also uses several other special keys under
HKEY_CLASSES_ROOT to look for shell extensions:
*,
Folder,
Drives,
Printers, and keys for network providers. Descriptions of the keys follow:
- You can use the * key to register handlers that the shell calls whenever it creates a context
menu or property sheet for a file object in the following manner.
HKEY_CLASSES_ROOT
* = *
shellex
ContextMenuHandlers
{00000000-1111-2222-3333-00000000000001}
PropertySheetHandlers
{00000000-1111-2222-3333-00000000000002}
The shell uses instances of the ExtraMenu and SummaryInfo handlers to add to
the context menus and property sheets for every file object.
- You can use Folder key to register a shell extension for directories in the file system. You can
register context menu handlers, copy hook handlers, and property sheet
handlers in the same way you register these handlers for the * key. An additional handler, the drag and drop handler, applies only to the Folder and Printers keys. An example showing the Folder key follows.
Folder = Folder
shellex
DragDropHandlers
{00000000-1111-2222-3333-00000000000004}
CopyHookHandlers
{00000000-1111-2222-3333-00000000000005}
- You can use the Drives key for the same registrations as the Folder key, but the Drives key is called only for root paths (for example, C: \).
- The Printers key allows the same registrations as the Folder key, but it uses additional handlers for printer events, deletion or removal
of printers (through the copy hook handler), and printer properties (with
property sheet handlers and context menu handlers).
To avoid conflicts with other classes, you must use real GUIDs, not the sample
strings shown in the previous examples.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples