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. This is the minimum 
install with no support files, most people have them already. 
If it fails to work then you need to download the full install.

Requirements
~~~~~~~~~~~~
This archive (crcpp101min.zip) doesn't include support files, 
the files included were developed with the following files 
present, if you have probs and your files are older then get 
updates from MS or download crcpp101.zip. Typically some MS 
update will have updated your system by now anyway.

MSVCRT.DLL		V6.00.8397.0	A7F18460
MSVCIRT.DLL		V6.00.8168.0	0571D0E6
MFC42.DLL		V6.00.8447.0	E9F90051

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

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
