|
Decompression ChamberProduct
Synopsis Decompression Chamber, or DC for short, is essentially a "shell" application which wraps the excellent command-line decompression utilities written by several authors. There are three major motivations for this product: 1) To provide a single interface for archive set testing, repair, and extraction of multiple compression types. In particular, support for those compression types popular in the Usenet communities. 2) To enhance the feature sets provided by the graphical user interface (GUI) versions of the command-line products. 3) To improve support for large numbers of large archive sets.
Because this is a shell wrapping other utilities, you must properly license and install the utilities you use with DC. If you are trying to avoid licensing of the products that DC supports, then DC is not for you. Furthermore, because the command-line decompression applications generally are not distributed without their GUI counterparts, you will probably have to install the full Windows versions of their software. Therefore, DC generally does not evade the need to install the GUI version of the supported products. Due to these limitations, DC is definately not for everyone. But I believe it will become a popular tool for improving the efficiency of multiple archive set testing and extraction.
Included with any licensed distrubution of DC is a file called "DecompressionChamberStatus.txt". This standard text file, often referred to as a version control file, lists both the "todo" list of intended features and bugs and also a list of features and bugs fixed already according to their version number. It is a very good idea to read this file before working with DC as the first section will inform you about features planned for upcoming versions, bugs that you may experience when using DC. Then, the second section will list the latest changes that may not be reflected in the documentation. Status (including private betas): STATUS (Dates that entries were added are now included to facilitate determining which are new) IMPORTANT! Due to an incompatibility between the VS.NET build of DC and Win9x's COMCTL32.DLL, I have had to disable most compiler optimizations until I figure out what is the specific cause. DC's performance may be slightly slower due to this. (FIX |03-01-24) Deleting should invalidate an entry (FIX |02-03-24) Refreshing while operating is still not working correctly (FIX |02-03-17) Idle operations should stop queuing once input is detected (FIX |02-03-17) Idle operations should be multi-threaded and soft abortable (FIX |Original) When a repair operation is successful, update member file state internally (FIX |Original) The mathematics behind the height of the multiple bottom panes is thrown off when the results pane height is small (FIX |Original) Refreshing a directory, without clearing first, may not detect newly available parity volumes (uncertain) (FIX |Original) All new secondary thread operations are not soft abortable (FIX |Original) If an invalid parity volume is not "properly" named, the entire filename must be displayed in the "Invld" column (FIX |Original) When parity data is available, most operations restricted for ghosts should be lifted (FIX |Original) If non-archive file is included in PAR, "Needed" results are undefined (FIX |Original) Undefined results if PAR file contents are out of ascending alphanumeric order (FIX |Original) Undefined results if "Move extracted on success" is on when extracting from an archive containing directories (FIX |Original) After member file or entry move or delete, update that entry in primary pane (FIX |Original) When a shell operation occurs, "Cancel" should abort the DC operation (FIX |Original) On startup, "Secondary Directory" combobox gains focus (FIX |Original) If entry's current status is EXTRACTED don't override with .crcok files (FIX |Original) If ignore is toggled "on" and entry is operating, operation should be aborted (or ignore be ignored) (FIX |Original) IFF a directory is watched, "* on Add" is enabled, and member files are added to that directory _sequentially_, it will operate on each addition (FIX |Original) Clicking on result pane URL moves result pane scrollbar to top limit (FIX |Original) Doesn't see RARs past .s99 (FIX |Original) Sort routine needs to ignore case, may also affect completion deduction [Possibly fixed] (FIX |Original) Archives with a very large amount of files can freeze DC and also the entire listing might not be shown [Possibly fixed] (FIX |Original) ZIP does not always extract full directory structure (perhaps when using extract option (b)?) [Possibly fixed] (FIX |Original) If a primary member file is individually added to a ghost, ghost status is not revoked (FIX |Original) Change repair backup procedure to avoid short UI freeze (use CopyFileEx) (FIX |Original) Results pane can be forced to be redrawn too often (need to limit calling of redraw) [Possibly fixed] (FIX |Original) "Deduced incomplete" should be a part of the substatus bit vector, so it can be reapplied as a status after a failure or abortion (FIX |Original) Windows 9x does not particularly like the rich edit control itself (not related to my source) and may be slightly unstable, consider an alternative (TODO|03-02-05) Option to ignore "Uxexpected end of file" error (for new versions rar that can repair these) (TODO|03-02-03) Detect files contained in archive sets for display at user request (TODO|03-01-29) Only retest member files during PAR tests that have been modified (TODO|03-01-24) Testing (PAR) of split sets (TODO|03-01-17) Obsolete entries (those entries that have been moved or renamed) should be updated instead of invalidated (TODO|02-06-03) Instead of locking the interface during certain operations, the selection list needs to be recorded immediately and operated on in the background (TODO|02-03-25) When a directory is refreshed, reset aborted entries to a normal status (TODO|02-03-17) Set some kind of limitation on the number of lines in the results pane (TODO|Original) Track time of successful archive part tests when using parity. This will allow for display of tested/untested archive part status (TODO|Original) When operating, and the window has not been manually scrolled, scroll to the bottom of the currently operating entry's results when test is added (TODO|Original) Add adjustable auto-pauses (one for each test and extract operations) for when free space is low (TODO|Original) Add option to only auto-refresh when doing nothing else (or set that as default with option to override) (TODO|Original) Add popup help text for as many menu entries as possible (TODO|Original) Renovate toolbars (TODO|Original) Phase III PAR Support - Reconstruction of archive parts by P## file (TODO|Original) When auto-moving on successful test, optionally delete any .needed 0B files (TODO|Original) Allow more functionality for ghost entries (TODO|Original) Phase IV PAR Support - Advanced PAR features (TODO|Original) Switch from MBCS (actually SBCS) to UNICODE? (TODO|Original) Add option that shuts off the results pane when no entries are seleted or other results pane restrictions (TODO|Original) Delay some of the processes run when adding entries (to improve response) (TODO|Original) Make options dialog multi-pane (TODO|Original) Display status bar statistics (# entries & total size of entries, for both totals and selected) (TODO|Original) Option to, when there is free time, detect the contents or size of the contents of the archive sets (TODO|Original) Add column showing number of member files present (TODO|Original) Log (optionally to file) operations done by DC (not including the output of the console applications) (TODO|Original) T.Rieper-style browsing for "Extract to..." and other directory selecting operations (TODO|Original) Create .complete files (or perhaps .renamed or .namelink) (TODO|Original) When a directory or file is added, if it causes the set to be large enough for incomplete deduction, then reset to idle (TODO|Original) When testing, note files that are "end of archive is reached prematurely" for needed detection (TODO|Original) Add optional compression type "guessing" (TODO|Original) When files are checked as CRCOK, allow configuration of a directory to move them to (TODO|Original) Add "Extract to..." functionaliy (TODO|Original) Add "Delete on Successful Extraction" option (TODO|Original) Modify "needed" detection to notice member files shorter than the primary member file other than last and "noted short" files (should be optional) (TODO|Original) Change Watches so that they report specific file to DC instead of forcing an entire directory refresh (TODO|Original) Warn against using unregistered WinZip (TODO|Original) Warn against using WZZIP.EXE (TODO|Original) Add advanced repair support (TODO|Original) Add view contents functionality (TODO|Original) If using filled .crcok files, load test results into entry from file (TODO|Original) Verify behavior when archive set contains directories (TODO|Original) Strip special codes from text before writing to file {or make special codes less "ugly"} (TODO|Original) Optional creation of *.needed 0B files (listing which parts are missing from the sequence) (TODO|Original) SFV support (TODO|Original) Shell Integration (TODO|Original) Fix scrolling in the Results Pane (if possible) (TODO|Original) Win98 Regional Settings Support (win.ini) (Win2k Support is in as it uses registry) (TODO|Original) Functionality to treat multiple directories as one (TODO|Original) Display "Working" dialog box when loading files/directories (TODO-Verify|Original) Duplication of work thread when a file is added while already being operated on (TODO-Verify|Original) Add option to create .crcok file if file has only authenticity verification errors (TODO-Verify|Original) Verify thread safety on scopes other than class (TODO-Under Consideration|Original) Adjust "missing" to show incomplete and failed CRC files (TODO-Under Consideration|Original) Allow manual selection from member files of extensions to add to "missing" (TODO-Under Consideration|Original) Allow selection of "Extract To" option from context menu (TODO-Under Consideration|Original) Allow manual adjustment of archive type (TODO-Under Consideration|Original) Add menu to system tray icon (TODO-Under Consideration|Original) Optional creation of *.complete 0B files (when extracted filenames dont match original) (TODO-Under Consideration|Original) Remember column orders if changed (TODO-Under Consideration|Original) Ignore all "changes" for about a second after unpause. This should clear the queue which cant be managed directly. (TODO-Under Consideration|Original) Take note if a .crcok file has authenticity verification errors ----- VERSION HISTORY: Development Build (ADDED) Paste Entry Selections operation that selects entries according to newline-delimited, filename/filepath/crcok list clipboard data (ADDED) Entries ignored during above operation are written back to the clipboard (ADDED) Select None operation (ADDED) Select Verified operation 0.3.1280.0 - Public Beta Release (ADDED) Copy to Clipboard capability for the Results Pane (FIXED) Bug causing unpredictable builds when optimizations were turned on (FIXED) The two graphical buttons show as blank since building with VS.NET (w/ XP theme support) (NOTE) Above bug caused by unfixed and undocumented bug in VC7 (http://groups.google.com/groups?threadm=3DB8297F.C4492765%40daimi.au.dk) (FIXED) Minor bugfixes 0.3.1267.0 - Public Beta Release (ADDED) Rename entry operation (FIXED) Self-executing (.exe) RAR sets using part## extension do not combine into a single entry properly (ADDED) Obsolete entries (those entries that have been moved or renamed) must be invalidated (FIXED) The listview needs to be locked when certain operations are engaged (FIXED) Abort renaming operations if string contains invalid characters 0.3.1252.0 - Public Beta Release (ADDED) Disable Add/Refresh when Operating (Temporary until some threading issues are resolved) (ADDED) Support for new RAR volume naming (Extensive code modifications, be alert for potential bugs) (NOTE) Compiled with VS.NET (Be even more alert for bugs) (ADDED) All keyboard accelerators (keyboard shortcuts) should be operational (FIXED) Erroneous ghost member files were being created after refreshes when using the heuristic (FIXED) When refreshing entries, if the entry is being operated on, it is ignored. This should fix the unreleased crash bug caused when refreshing during operations (ADDED) Basic support for Windows XP themes (ADDED) Reading of P## files when PAR is unavailable (Only for testing, no recovery for a while still) (ADDED) When detecting neededs by parity volume, ghost status is not used, allowing for proper needed enumeration (FIXED) Native parity testing is soft-abortable 0.2.1179.0 - Private Beta Release (ADDED) Saving of column order in primary pane (ADDED) Add columns "N", "P", and "V" for counts of 'n'eededs, 'p'otenial parity volumes, and 'v'erified parity volumes (ADDED) Display erroneous parity files ["Invld" column] (FIXED) Changing directories in the drop boxes used to move the other directories down instead of swapping the entries, it should do so again (FIXED) When compression colors option is changed, redraw list (FIXED) Verification of parity volumes is lost when directory is refreshed (FIXED) When "Easy Neededs" are replaced, the "Neededs" are not reflecting the change (FIXED) If loading parity files and a parity file is locked from reading, DC crashes even though exception is handled [MFC bug that I worked aronud] (FIXED) Some "Test Complete Failure" entries are reverting to "Idle" even though they have not been fixed, possibly when [MODIFIED] is turned on (FIXED) If PAR is available but generic algorithm is chosen, "Needed Count" should be blank instead of reporting 0 0.2.1125.0 - Private Beta Release (FIXED) Made CListEntry, CArchivePart and CParity threadsafe (ADDED) Add option to include damaged files in "Needed" list (affects all files using parity algorithms, and RAR & ACE only for generic algorithms) (ADDED) Phase II PAR Support - Detecting damaged/neededs by PAR MD5 hash (ADDED) When member file display is compressed, scroll entry into view (ADDED) When member file display is opened and listing is smaller than view, scroll last mesmber to bottom of view (ADDED) When member file display is opened and listing is larger than view, scroll primary member to top of view (FIXED) Double-clicking on a member file used to collapse the member file display, it should probably still do so 0.2.1090.0 - Private Beta Release (ADDED) Switched from directory selection of the secondary directory to "Directory Associations" (ADDED) Created an interface for managing directory associations (exposed with "View->Directory Associations" menu item or "Assoc" button) (ADDED) Check destination drive for move operations for space before moving (ADDED) Add more Help menu items (website, forum, webdocs, status) (ADDED) Phase I PAR Support - Reading of PAR file, detection of neededs by name and size (ADDED) Greatly improved needed detection by heuristic (FIXED) Adjust "Needed" column to display more intelligent results 0.2.981.0 - Private Beta Release (ADDED) Support for "split" archive sets (required extensive code modifications, thorough testing of old and new functionality is necessary) (FIXED) When a member file is selected, results pane displays results for parent (ADDED) ACE repair support (FIXED) Various UI tweeks, primarily dealing with Watches and Member Files (FIXED) Prevent watch overload (new internal queueing system implemented) [Needs verification] (ADDED) "Pause" toggle (ADDED) 10 specialized "Copy to Clipboard" operations (ADDED) "Action" and "Edit" menus available from popup menu (ADDED) Rename, Move & Delete member file operations (ADDED) Move & Delete entry (archive set) operations (ADDED) Add ShellExecute to entry's and member file's context menu and open "Open With..." dialog if not associated (ADDED) Add "Secondary Directory" selection for upcoming operations (ADDED) Add "Move entry on successful test" option (ADDED) Add "Move extracted files on successful extraction" option (ADDED) Add operations to open help file from Help menu (ADDED) Option to automatically "Add" using one of the four directory add functions on current directory when application starts (ADDED) Allow user to reset entry status (ADDED) Optionally make background color of entries representative of the compression type (ADDED) Allow user to manually select compression type 0.1.883.0 - Private Beta Release (FIXED) Abort repair when an unrecoverable part is found (FIXED) Improve processing of console output {This process is now much more efficient} (FIXED) Hard abort causes small leak of memory (FIXED) Cannot soft abort unless output is coming from console application (ADDED) Modify abort to use event (FIXED) When master watch pause is unpaused, no changes during the pause should trigger (ADDED) Add option to deduce incomplete if final part is the same size as primary part or 0 bytes (FIXED) Add option to create .crcok file if file has only authenticity verification errors [Needs verification] (ADDED) Add "Force Operation" checkbox to dialog bar (FIXED) "Add Files" conflicts with "Deduced Incomplete" [Needs verification] (FIXED) Several bugs in dealing with 001-style RARs exist (FIXED) ZIP files should extract full directory structure 0.1.833.0 - Private Beta Release (FIXED) "Needed" calculation for ACE archives does not remove initial ',' or add final '+' (ADDED) Add RAR repair support (ADDED) Add option to backup a file before repairing it 0.1.760.0 - Private Beta Release (ADDED) Create IGNORE state and allow entries to be toggled to it (ADDED) Implement clicking on URLs in Results Pane (ADDED) Operation to open Explorer at the "Current Directory" (ADDED) Operation {Double-click entry} to display "Member Files" of the archive set [Please test thoroughly as this added a great deal of code] (ADDED) "Member Files" are displayed in a different color from the normal entries (ADDED) Display total size of archive set (ADDED) Add "Clear Ignores" (FIXED) Rename "Recent Directories" to "Memorized Directories" (ADDED) Rename "Auto-Add" to "Watch" (ADDED) Dont bother testing incomplete sets |-(NOTE) If there are 3 or more pieces to an archive set, one can deduce if it can't be complete (ADDED) Add new options for test/extract: "Test/Extract All" "Test Unconfirmed" {Modified to "Test Idle" and "Extract Verified"} (ADDED) Add support of *.ignore files (ADDED) Optional ignore of Test/Extract when files are missing from a sequence {Not optional} (ADDED) Detection of *.crcok files to avoid retesting 1.0.668.0 - Private Beta Release (ADDED) Add "Add" button to dialog bar for "recent directories" (FIXED) Fix coordination of "recent directories" between dialog bar and options dialog 1.0.661.0 - Initial Private Beta Release (ADDED) Original Functionality ----- NOTES: 1) "Development Version" denotes current unreleased development version -Features in these versions will be included in the next release |