Objective Toolkit : Chapter 25 Namespace Extension Wizard : Selecting Namespace Options
Selecting Namespace Options
There are several options in the Namespace page of the Stingray Namespace Extension Wizard.
Show Up
The Show up option controls where the namespace extension will show up in the Explorer. The possible settings are:
Desktop – The namespace extension will show up under the Desktop node of the Explorer.
My Computer – The namespace extension will show up under the My Computer node of Explorer
My Network Places – The namespace extension will show up under the My Network Places node of Explorer.
Register For
The Register For option controls how the namespace extension object is registered. This option helps to put proper registration keys in the generated registration file of your namespace extension COM object.
The possible settings are:
Current User – the object will be registered on a user by user basis.
Local Machine – the object will be registered for the whole local machine; every user on this machine will be able to access this object.
Support UI Object
The Support UI Object section controls which optional interface your namespace extension supports. These interfaces are returned when Explorer calls GetUIObject() method of your IShellFolder interface. For each item you check in this section, the wizard generates a corresponding implementation class in the project, putting the proper code in the GetUIObject() method to export that interface. The remaining two check boxes decide whether you want to see some more detailed comments in the generated code and whether you want the wizard to generate some sample code. If the Some sample code check box is selected, you can compile the generated code right away and get a working namespace extension you can view from the Explorer.
Note that the implementation classes— SECIDropSourceImpl, SECIDropTargetImpl and SECIDataObjectImpl—contain only the IUnknown implementation and the reference-counting logic. All the implementations for other methods are not meaningful. You must provide implementations for all methods other than those of IUnknown. In general, you should also override the methods IExtractIcon() and IQueryInfo() in the SECIExtractIconImpl and SECIQueryInfoImpl classes, but it is not required. The default implementation of SECIExtractIconImpl and SECIQueryInfoImpl will work fine, but it will not always be what you want. SECIContextMenuImpl wraps IContextMenu and makes the support of IContextMenu a lot easier. Generally, you only need to add your menu item into the menu map and override the CommandHandler() method to do the menu handling.