The end-goal of this job is to create a fully functional, high performance, high scalability shell namespace extension; capable of working on Windows versions XP through Server 2016, both 32-bit and 64-bit platforms. This shell namespace extension will replicate and extend the capabilities found in the existing shell namespace extension found in the package downloadable from www.diskzip.com. In a nutshell, this shell namespace extension is very capable, and extends Windows's built-in ZIP folders feature to more than 80+ archive types, including seamless compression/extraction in response to user actions such as double-click, copy/paste, drag/drop, etc. It also supports advanced archive-specific features, such as integrity testing, self-extractor conversion, and more.
We are migrating our existing shell namespace extension code from our custom platform to the ShellPlus platform. Unfortunately, the ShellPlus platform has many bugs, which affect performance, features, and reliability. However, because the ShellPlus platform has a more modular component-based architecture, as well as support for Windows's built-in shell browser, we have decided to undertake this migration.
Therefore, you will be simultaneously working on fixing the bugs inside the ShellPlus component library (your work will be donated back to the original component vendor, so they may offer the same improvements back to their customers), as well as completing the implementation of the actual shell namespace extension, consuming the fixed ShellPlus library.
You do not need to write any archive management code at all. You will be calling command-line executables for all archive related tasks, including file listing, compression, extraction, and advanced archive-specific functions such as testing, self-extractor creation, and more. Therefore, your work and time will be spent almost exclusively on the ShellPlus component code, and the shell namespace extension implementation.
We have defined four milestones as part of this project:
1) Archive enumeration (including full Unicode support). Please note, we have already attached code which partially implements archive enumeration (as best as currently possible, within the limitations of the existing ShellPlus component library). Therefore, this milestone is already half-done.
2) Compression, extraction, copy/paste, drag/drop, and double-click implementation (while the meanings of most tasks are obvious, it is worth mentioning that the double-click implementation requires you to extract the selected file, launch it with its owner application, and then re-absorb the modified file when the owner app is closed and changes to the file are detected).
3) Advanced archive specific functionality implementation - you will query, through our command line binaries, which tasks (such as testing and self-extractor creation) are available for each archive type; and offer them for action for each specific archive type in the shell namespace extension. Please note, you will not need to code any actual task implementation - again, our command line binaries will take care of everything for you.
4) Final checks, performance optimizations, last minute changes, and fixes within the scope above.
Your work will be tested against our library of "problem archives" - for example, very large archives (size defined not by the byte size of the archive, but in terms of the number of items inside an archive - for example, the DiskZIP shell namespace extension currently browses archives with tens of thousands of files inside them instantly, and much faster than Windows's own built-in ZIP folders implementation), Unicode archives (archive names with Unicode and names of files inside archives with Unicode - again, remember that you are responsible for the communication of Unicode information to the shell only; as our command line binaries already fully implement Unicode support), among other sophisticated test cases.
The resultant shell namespace extension must meet or exceed DiskZIP's existing performance, and add new features missing in the DiskZIP implementation (support for populating default and custom File Explorer menus, default and custom File Explorer actions including ribbon support, etc.) including the switch from a custom form based NSE to a default Windows shell browser based NSE.
We will provide you with full assistance and source code examples from our current shell namespace extension to make it as easy as possible for you to perform the actual archive tasks, such as code examples to query for the types of custom actions available for each archive type.
You may immediately download DiskZIP, as well as the attached source code archive; you would therefore be able to build the current partially achieved milestone #1 stage and review the current state of functionality available, as well as compare the performance and stability issues to the current alternate DiskZIP implementation.
Got questions? Please ask!