Deployment Instructions
CBFS Shell is supported on Windows 7 and later on x86, x64, and ARM64 processors.
CBFS Shell includes two user-mode libraries (DLLs) with the class logic and a native proxy library (DLL) that is loaded into the Windows Shell processes; both must be distributed to deployment machines.
The user-mode libraries come as dynamic libraries (DLLs) with import libraries, named cbfsshell24.dll and cbfsshell24.lib, respectively (available for x64, ARM64, and x86 processor architectures).
Deploy the .dll file to the target system and place it next to the application's .exe file.
In addition to the main dynamic library, this product requires a secondary DLL named callback.CBFSShell.dll to be deployed. It is present in the same directory where the main dynamic library is, and must be deployed into one directory with the dynamic library.
The Proxy library (DLL) is located in the proxy directory of the installation; the proxy library is compiled for specific processor architectures and is named as follows:
- CBFSShell.<Id>.x86.dll
- CBFSShell.<Id>.x64.dll
- CBFSShell.<Id>.ARM64.dll
Note: On x64 and ARM64 systems, it is necessary to include the proxy DLLs for other platforms (x86 on x64 systems, x86 and x64 on ARM64 systems) because on those systems, processes that have different architectures (including File Explorer) may be executed. If those processes use the Shell (such as common file dialogs), it is important that the proxy DLL with the corresponding architecture is available. The Install method of the classs takes care of multiple architectures of the same proxy DLL.
Installation
When distributing your CBFS Shell application, it is essential to prepare the target machine by calling the Install method. This should be invoked from installers rather than directly from the main application. For instance, it should be called from an install function or wizard.
The installation step enables your application to leverage the full functionality of ShellFolder or ShellMenu. Once this part is completed, remember to restart Windows File Explorer. This will rebuild the structures of the Windows Shell and allow users to find the namespace or menu.