An operating system provides extensions through which application
developers may extend the capabilities of a shell of the operating
system. For example, application developers may add menu items to context
menus for objects that are visible within an integrated system name
space. In addition, developers may add property sheet pages for such
objects. Application developers also have the option of providing
per-instance icons for each instance of an object. Application developers
may provide data object extension handlers for customizing data sources
on a per-object class basis and may provide drop target extension
handlers on a per-object class basis to customize drop target behavior.
Developers may additionally provide copy-hook handlers to regulate file
system operations on objects. Developers may also extend the
functionality provided by the shell of the operating system by adding
their own custom name spaces to the integrated system name space. The
mechanism provided by the operating system to add such a name space is
polymorphic and transparent to users.