File CRC Shell Extension. ========================= Copyright (c) Chris Amos 1999 Description. ~~~~~~~~~~~~ This utility adds a property page to the explorer shell (right-click on file and choose properties). This allows you to tell if a file has been corrupted or if two seemingly identical files are indeed indentical. For developers you can use the CRC to see if the selection of identical DLLs are really identical, then you can be sure whether you should ship different NT and 98 versions. I wrote this as a learning excersise in shell integration, memory mapped files and inf install scripts. So you have been warned. The extension will not calculate the CRC of a group of files or a folder. Be warned that if you select a large file the CRC will take while to calculate, this will not happen until you click on the "File CRC" tab, it calculates CRC's at around 2MB/sec. The CRC is only calculated once for the file so if you click on the "File CRC" tab again there will be no delay. As a bonus for developers (C or VB), the CRC calculation DLL is also freeware (also mine) so you can use it if you wish, the APIs are: extern "C" long PASCAL CalcCRC (char* fname, long* result); or Declare Function CalcCRC Lib "FileCRC.DLL" _ (ByVal FilePath As String, _ ByRef Result As Long) As Long NB. For VB'ers there is a fancy OCX version with a built in progress bar on my site, this does other methods also. Method. ~~~~~~~ The CRC method used is fairly standard, I have found it is the same as the method used in Zip files. For the mathamaticians: CRC = x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1 License. ~~~~~~~~ Freeware, all rights reserved,. Installation ~~~~~~~~~~~~ Right-click on the .inf file to install, it should do all the version checking, if you are nervous of installs you can remove the files marked with a * from the inf file (see below) and be sure nothing will happen to your system. If the CRC extension fails you will have to consider the full install. [Support.sys.install] FileCRC.dll <-- required custom dll MSVCRT.DLL <-- microsoft core file* MSVCIRT.DLL <-- .. .. * MFC42.DLL <-- .. .. * Support ~~~~~~~ As freeware there is no support. That said you mail email me any bugs/suggestions to: mailto://chrisaaa@email.com mailto://crcshext@sirocco.force9.co.uk. Latest versions of this software may be found at: http://welcome.to/sirocco http://www.sirocco.force9.co.uk. http://www.geocities.com/SiliconValley/Vista/1388/ Commercial Users ~~~~~~~~~~~~~~~~ I realise commercial users require continutity of support, drop me a line and I can let you have the source code for a small fee (it is included with source for the dll, shell extension and an OCX). Files ~~~~~ CRCSHEXT.DLL V1.02 8AA2671C FILECRC.DLL V1.02 B715EEBC MSVCRT.DLL V6.00.8397.0 A7F18460 MSVCIRT.DLL V6.00.8168.0 0571D0E6 MFC42.DLL V6.00.8447.0 E9F90051 Disclaimer ~~~~~~~~~~ This software is supplied as is with no waranty express or implied. I will not be held responsible for any damages howsoever caused. It should not be used in safety critical applications. Revisions ~~~~~~~~~ V1.03 23/11/99 Recompile with faster CRC DLL (40% quicker) V1.02 15/08/99 Recompile to remove debug info. V1.01 29/12/98 Fix prob [after] crc'ing an empty file. Updated support DLLs Cosmetic, CRC's now zero padded in hex and unsigned in decimal V1.00 17/10/98 Original release