|
|
Windows Explorer is a very flexible shell. Many of its
dialogs, windows, menus and options can be changed or extended. Windows supports a special COM-based plugin technology known as Shell Extensions to make it possible.
There are many built-in Shell Extensions and you can see them almost everywhere:
- All virtual folders such as Printers, Control Panel, Recycle
Bin are shell extensions
- File-specific icons, small arrows on
link icons, link icons itself are shell extensions too
- Additional
context-sensitive menu items are supplied by file-specific shell extension modules
- Tips in the tray icon menu, property sheets and many other items
you see every day...
All these wonderful additions are
Shell Extensions. With Shell+ you can easy develop your own Shell Extensions.
It will make your program more convenient and attractive. As
usual with Delphi it is easy to start - only a few clicks are necessary to generate
your own shell extension from scratch. Shell+ takes care of all methods to be
implemented so you will never need to code numerous interfaces required by Windows.
Write only necessary code, Shell+ will do all other routine jobs. Look
on the map below. Point and click shell extension kind you are interested in learning
about:
There are two kinds of distributive packages
in Shell+: Standard
and Namespace.
Notification
Area (system tray) | Example |
An icon is easy
to add into a system tray. Using Shell Extensions on systems with Internet Explorer
5.0 or later you can show balloon tooltips like those on the sample screenshot.
You do not need to worry about making a correct balloon drawing - shell will take
care of it and assure its look will integrate into Windows. Shell+ allows you
to create this type of example easy, just follow the simple example.
Balloon Tool tip
Refreshing icon after restarting the Shell
Animated icons in the system tray
Different Balloon Tool tip events: OnClick, OnClose, OnHide... |
Shortcut
Menus | Example |
Every time user right
clicks a file, a group of files or folders, a pop-up menu appears. This menu contains
a list of commands that the user can select to perform various actions on the
object. Would you like to add your own menu item? It's possible and it's easy.
An example how to do it is available here.
Try it and you will see your own menu items in pop-up menu in less then ten minutes.
Complete support of TPopupMenu component
Images on the menu items
Owner-Draw menu items (now in developing state) |
Property
Sheets | Example |
When
a user right-clicks a Shell object, the shortcut menu that is displayed normally
includes a Properties item. Selecting that item launches a property sheet that
allows the user to view, and in some cases modify the object's properties. It
is convenient to handle and inspect basic file properties using this dialog. If
you need to, you can easy add your own pages into this dialog. To do it you will
need to design a form that should be shown as a part of the dialog and add a couple
of Shell+ components to your project. Complete process is considered here,
follow to quickly create your own property pages.
Develop your property sheets like usual Delphi Form
You can add new property sheets or replace default property sheets
Insert your property sheets to files, folders, drives properties dialogs
Add your property pages to device driver properties
Also available device folders, internet settings, mouse and display properties
dialogs and more... |
Icon
Handlers | Example |
An icon handler is
a type of Shell extension that allows you to dynamically assign icons to the members
of a file class. Every time a file from the class is displayed, the Shell queries
the handler for the appropriate icon. For instance, an icon handler can assign
different icons to different members of the class, or vary the icon based on the
current state of the file. More
info...
Generate icon images in run-time
Specify the path to existing icon file and icon index |
ToolTip
Handlers | Example |
Every time the user
hovers the mouse pointer over the object, the Shell queries the handler for the
appropriate information text. You can supply your own text there. Implementation
of this feature requires to use the ToolTip Shell+ component. The following example
shows how to
use it.
Add your text or modify default (system) info tip
Generate info-tip text in run-time
Use multi-line or single-line info tips |
Copy-Hook
Handlers | Example |
A copy hook handler
is a Shell extension that determines if a Shell folder or printer object can be
moved, copied, renamed, or deleted. The default behavior is to ask user's confirmation.
Shell+ allows you to customize
this operation, add your own confirmation dialog and/or control desired shell
objects.
Be informed, when anyone copies, renames or deletes file objects within the Shell
Take
under control the Shell operations |
Thumbnail
Image Handlers | Example |
Would you like to
supply your own thumbnails for image files? Need to add thumbnails to your own
data files? All these tasks can be solved with Thumbnail Image Handler - a special
type of Shell Extension that provides an image to be displayed when the user selects
the Thumbnail view. A few steps only are necessary to implement
this type of Shell extension.
Generate preview images in run-time
Work easy with usual TCanvas class |
Drag&Drop
Handlers | Example |
Every
time user right clicks right mouse button on a file, a group of files or folders,
and drag this file objects to other folders, the pop-up menu appears. This menu
contains a list of commands that the user can select to perform various actions
on the object. Using this component, you can your own menu item to this menu with
easy. An example how to do it is available here.
Try it and you will see your own menu items in pop-up menu in less then ten minutes.
Complete support of TPopupMenu component
Images on the menu items
Owner-Draw menu items (now in developing state) |
Shell
Change Notifier | Example |
If
you need to monitor file modification, creation or deletion in different directories
around your disk - this component for you. You can specify the monitoring directory,
file masks, monitoring thread priority and other setting, that will help you to
monitor activity of file system.
Multithread engine
Work under all flavors of Windows (Win7, Vista, 2008, 2003, XP, 2K, 98, ME, NT4, 95)
Control engine threads priority |
Folder
Columns Provider | Example |
The
Microsoft® Windows® Explorer Details view normally displays several standard columns.
Each column lists information, such as the file size or type, for each file in
the current folder. By implementing and registering a column handler, you can
make custom columns available for display.
Easy to specify additional columns
Provide custom text for common columns like Autor, Title, etc.
Different data-types |
Icon
Overlay Handler | Example |
Icon
overlays are small images placed at the lower-left corner of the icon that represents
a Shell object. They are normally added to an object's icon to provide some extra
information. For instance, a commonly used icon overlay is the small arrow that
indicates that the icon represents a link, rather than the actual file or folder.
In addition to the standard icon overlays that are provided by the system, you
can request custom icon overlays for specified Shell objects by implementing and
registering an icon overlay handler.
Easy to specify overlay icons
Complete implementation of Windows functionality |
Shell
Link Access | Example |
Shell
link shortcuts are wide used in the shell. The "Start" menu is an obvious
case for that. With our component you can easily access the shell shortcuts (*.lnk
files). You can create, modify, resolve shortcut files and access the specific
shell link data.
Easy and intuitive access to the shortcut files |
Url
Handler | Example |
Url
Handler allows you manually translate URL protocol that is unknown for Internet
Explorer. When attempting to browse to a URL address that does not contain a protocol,
the browser will first attempt to determine the correct protocol from the address.
If this is not successful, the browser will create URLHandler objects and pass
them unknown URL for parsing.
Implementing new URL protocols to simplify navigation or launch custom applications
| File
Drop Target | Example |
TsxFileDropTarget
component allows you make usual files available as targets for drag&drop operations.
Example of File DropTarget implementation in Windows Shell could be ZIP-files.
When you drag&drop some files from Explorer to a ZIP-file, Windows Shell will
launch application to add dropped files to archive.
Making usual files as drag&drop destinations |
Explorer
Band | Example |
With
TsxExplorerBand component you can create custom Bars and Bands for Windows Explorer.
There is a wide range of possible uses for the Explorer Bar: users can select
which option they wish to see in several different ways, including selecting it
from the Explorer Bar submenu of the View menu, or clicking a toolbar button. Internet
Explorer provides several standard Explorer Bars, including Favorites and Search.
One of the ways you can customize Internet Explorer is by adding a custom Explorer
Bar. When implemented and registered, it will be added to the Explorer Bar submenu
of the View menu. When selected by the user, the Explorer Bar's display area can
then be used to display information and take user input in much the same way as
a normal window. Also you can create Internet Explorer
Toolbars and Desk Bands (dockable windows on Desktop) that is very popular nowadays.
It is so ease as create program in Delphi - just make a form and add components
there.
Making Explorer Bands like Favorites, Search, History, etc.
Making Explorer Toolbars like Google or MSN Toolbar
Making Desk Bands like Google Desktop Toolbar or Microsoft Media Player panel
|
Namespace
extensions
|
Example
|
Windows Explorer displays
a lot of folders that are not file directories at all: My Computer,
Control Panel, Printers Folder,
Network... These folders are known as virtual and it is allowed
to add more folders to the Shell if necessary. To do it you will
need to implement a special dynamic library and supply a lot of
very specific interfaces and data. Hopefully ShellPlus takes care
about all this internal features so you can develop your own extensions
as easy as an ordinary application. If your project contains any
data that can be represented in a tree form then you can show
this data in the Explorer as if it would be reald files and directories.
ShellPlus namespace extension components givces you the following
benefits:
Easy to use (put a few components and run)
You do not need to know about numerous Shell interfaces and classes
Different data-providers (starting from simple tree-storage to
TDataSet support!)
We develop any kinds of custom DataProviders for
your own data formats. Feel free to contact us for details at
info@shellplus.com
|
|