|
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.
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|