Introduction

CBFS Shell is a software library that allows .NET developers to easily write Windows Shell Namespace Extensions and Shell-integrated Cloud Drives.

Advantages of the Shell Namespace Extension

A custom Namespace Extension can tightly integrate with the billions of copies of Windows. Following are some good reasons to use a custom Namespace Extension:

  • Expose any data or information set to end users, while simultaneously providing them with tons of features provided by the Windows Shell (e.g., navigation, search, copy, paste, links).
  • The Windows Shell/Explorer is known well by many end-users. This considerably reduces the need for costly end-user change management or training for project adoption.
  • Shell Extensions are incredibly versatile. Folders and items can be fully virtual you can use them to represent anything you want.
  • Item content can be created on demand. The content doesn't really exist on disk but is created on-the-fly when the user selects them in explorer.

Working with the Windows Shell

Our library relies on technology inside Windows. For example, the Windows UI provides users with access to a wide variety of objects for running applications or managing the operating system. The Windows Shell is a filesystem-like hierarchy that organizes these objects into a namespace and provides users and applications with a consistent way to access and manage objects.

Additionally, File Explorer is a crucial component of any Windows installation. File Explorer is the out-of-the-box host program, over the Windows Shell, that provides a graphical and hierarchical representation of many Windows objects, such as the desktop, the user's documents, physical folders and files, or their content (like .zip files).

A Shell Namespace Extension is a virtual folder in the Shell Namespace among other Shell folders. This is helpful in creating a new data source for applications on the system. See CBFS Shell Architecture for more detail. When a user browses a virtual folder, the data are presented as a tree-structured hierarchy of folders and files, much like the rest of the Shell Namespace:


In summary, the extension provides items and subfolders (folders are just a type of item) and their columns or properties for a given junction point in the Shell Namespace. A folder can be seen somewhat like a table, with each item being a row, each property being a column, and each property value being a cell.

Note: Shell Namespace Extensions sometimes are referred to as Shell Data Source Objects.

The Shell Namespace and Extensions

The Shell Namespace is a tree-structured hierarchy that contains the objects that make up the system. It is a larger and more inclusive version of the filesystem. Extensions to the Shell Namespace allow users and applications to interact with the contents of a virtual folder in much the same way as with any other Namespace object.

In fact, even a standard Windows installation contains lots of out-of-the-box Namespace Extensions:

The Shell's Namespace graphical representation also includes other visual information, such as the following:

  • Details Views, List Views, Icon Views
  • Thumbnails and Tooltips
  • Property Pages
  • Toolbars and Ribbons
  • Notification Banners

Depending on the Windows version, the Shell also comes with many standard end-user tools and actions. These tools can act on items and folders in a hierarchy, as follows:

  • Context Menus, with standard or specific items, added by other shell extensions
  • Copy, Paste, Cut, Delete, Link, Drag and Drop
  • Go To, Backward, Forward, Level Up, Level Down
  • Grouping and Filtering
  • Searching
  • Cloud Files Sync Information

Without a Shell Namespace Extension

Without a Shell Namespace Extension, you cannot do any of the following:

  • Have multiple items with the same name in a given Shell folder. It's impossible to have two or more filesystem entries with the same name.
  • Open a composite file (such as an archive file) like it is a virtual folder. Explorer does this when an end user clicks on a .zip file. It shows the content of the .zip file as a subtree hierarchy that is naturally integrated visually in the Shell.
  • Have items in a shell folder with names containing reserved characters, such as '?' or ':'.
  • Have fully virtual items, items without a physical presence on the disk as files or folders (e.g., database items), or files on a remote server or in the Cloud.
  • Have these items support shortcuts, drag & drop, copy/paste, and modifications just like they were regular files and folders.
  • Present a data source (whatever the data are) as folders and files to an end user.
  • Present fully virtual files (without any physical presence), created on-demand, to an end user.
  • Deeply customize the Shell view UI over your custom folders.

Components Included

CBShellBoostThe CBShellBoost component is a "gateway" to using the core functionality of CBFS Shell. With CBShellBoost, you can install and uninstall the native proxy DLL to or from the system as well as initialize it before using the core classes.

Additional Information

You will always find the latest information about CBFS Shell at our web site: www.callback.com. We offer free, fully-functional 30-day trials for all of our products, and our technical support staff are happy to answer any questions you may have during your evaluation.

Please direct all technical questions to support@callback.com. To help support technicians assist you as quickly as possible, please provide an detailed and accurate description of your problem, the results you expected, and the results that you received while using our product. For questions about licensing and pricing, and all other general inquiries, please contact sales@callback.com.

Thank You!

Thank you for choosing CBFS Shell for your development needs. We realize that you have a choice among development tools, and that by choosing us you are counting on us to be a key component in your business. We work around the clock to provide you with ongoing enhancements, support, and innovative products; and we will always do our best to exceed your expectations!

Copyright (c) 2022 Callback Technologies, Inc. - All rights reserved.
CBFS Shell 2022 .NET Edition - Version 22.0 [Build 8172]