			SJHb64 Version 1.20
                       
            A Base 64 Extractor for Windows 3.1 and Windows 95

			1996, SJHDesign Inc.


	Using the Program
	_________________

	SJHb64 is a small, fast utility that does only one thing-
        extracts Base64 encoded binaries from wherever they might
        be. That could be in a Mime compliant EMail file, a USENET
        posting or almost any text file. Using SJHb64 is simple-
        

	-Start the program by clicking on SJHB64.EXE in File
	 Manager or Explorer. You can of course put SJHB64.EXE 
         on your Win95 Taskbar Menu or in Program Manager.

        -Load ASCII files for decoding by either dragging them from 
         Explorer or File Manager and dropping them on SJHB64(one
         file at a time) or by choosing the DECODE FILE option from
         the FILE menu and using a standard Windows file open dialog.
         You can also autoload files by dragging them to SJHB64.EXE
         in File Manager or Explorer-the program will start up and
         decode the file you dropped on it. You can also drop one file
	 at a time on SJHb64 while it's minimized.

       -Once SJHb64 loads the file, a progress gauge appears and the
        program pops up a Save As dialog with the name and extension 
        of each Base64 encoded binary it finds in your MIME compliant
        file. If the file you loaded is not MIME compliant and it's
        header does not include the filename of the embedded Base64 
        encoded binary, SJHb64 figures out what type of binary it is
	and pops up the Save As dialog with the name of the loaded
        file and the appropriate extension. In other words, if you 
	load a headerless file named MYSTERY.TXT into SJHb64 and it
	finds an encoded .EXE file in there, it will pop up a Save
	as dialog suggesting that you save the binary as MYSTERY.EXE.
	If you happen to know the actual name of the binary, you can
	change it at this point.
        
	
	Design Philosophy
        _________________

	One of the most frustrating things about Base64 decoders is the
        way they handle non MIME compliant files(for more information
        about MIME and troubleshooting Base64 files, see BASE64.TXT in
        this archive). Most decoders simply decode the data and create
        a generically named file(like UNKNOWN) with no extension or pop
        up a dialog asking you to supply the file type(as if you remember)
        when they can't find the proper MIME header information. This is
        quite common-many of the Base64 encoded files you run across 
        on USENET do not have MIME compliant headers. That's one of the
	reasons why this program was created- I got tired of clogging my 
	hard drive with files named UNKNOWN.

	SJHb64 was designed differently- it recognizes the most commonly
	used binary types in their Base64 encoded form. If the MIME header 
        information isn't there or doesn't include the filename of the Base64
        encoded binary, SJHb64 will supply the extension for you if the 
	Base64 encoded binary is one of the following types:

		.JPG(JPEG images)
		.GIF(GIF images)
		.BMP(Windows 3x or OS/2 Bitmaps)
		.WAV(Windows 3X,95 sound files)
		.ZIP(version 2.04 or higher)
		.MPG(MPEG compressed video data)
		.EXE(Windows 3X, Win32 or DOS executables)
		.DLL(Windows 3X or Win32 Dynamic Link Libraries)
                .386(windows 3X or Win32 Portable Executables)
		.EPS(Adobe Encapsulated Postscript)

	Note : Mac image, sound and executable formats are not supported.

	At this point, MIME purists will jump up and shout(that's what 
	purists do) that this list does not conform to the supported file 
	types listed in the MIME specification. Since this is a Windows 
	program, it is oriented towards the type of files Windows and DOS 
	users are likely to be decoding. A few UNIX oriented file formats 
	were excluded and a few DOS\Windows oriented formats were added. 


	Another feature missing from most Base64 decoders is the ability to
	extract multiple encoded binaries from one file. The MIME format imposes
	no limit on the number of encoded binaries users can place in one message.
	This powerful feature is one of the main reasons MIME is the mail format of 
	choice in the most powerful and sophisticated mail programs. The problem
	here is that if you don't have one of these powerful(and expensive)programs 
	to read files that contain multiple binaries, you're out of luck. None of 
	the smaller decoding utilities we tested were able to extract more than one 
	Base64 encoded binary from a message containing multiple binaries! But
	SJHb64 does. The multiple binary MIME file we created to test the other
	decoders is included in this archive-it's called TEST.B64 and it contains
	a JPEG image(test.jpg), a .WAV sound file(test.wav) and a Windows DLL file
	(test.dll)-see if the decoder you use can identify and extract all three.
	Ironically, the shareware decoding\encoding program we used to CREATE our 
	multiple binary test file could only extract one binary(test.jpg) from it!

	Limits
        ______

	Having sung the praises of SJHb64, we should note that it has a few limits.
	
	It does not decode all of the MIME supported file types-
	.VOC sound files and encoded ASCII text are two common data types which
	SJHb64 will ignore if it encounters them. If the file you're decoding has 
	any encoded data in a type that's not included in the list of supported 
	file types in this document, SJHb64 will pop up a message saying "No Data to 
	Decode" and ignore the file if that's the only encoded data in it.

	The way in which bogus file extensions are handled is far from perfect- 
	If the file you are decoding has a mime compliant header with an incorrect 
	file type in it, SJHb64 will use the bogus extension for the decoded file. 
	In other words, if a MIME message contains a Base64 encoded JPEG file and 
	the header mistakenly says that it's a GIF file(which happens quite often), 
	SJHb64 will use the mistaken .GIF extension instead of correcting the header 
	and using the .JPG extension. We are working on this, and the commercial 
	version of SJHb64 will be able to automatically correct bad header data.

	Data errors in general could be handled in a more informative way-
        If SJHb64 is decoding a file and encounters corrupt Base64 encoded data,
	it just stops and closes the file instead of letting the user know that there
	is a problem. Once again, we are busy correcting this and should have it fixed
	in the next version.

	Windows95 long file names are not fully supported-
	If the MIME file you are decoding contains an encoded binary with a long
	filename, SJHb64 will rather inelegantly hack it to something conforming 
        to the DOS 8.3 filename standard. In general, SJHb64 will use the first 8
	characters of the long filename to make a DOS compliant name. If any of 
	those first eight characters contains a space, the program will insert
        a dash<-> where the space was. So

	    trytoloadthis.gif       becomes    trytoloa.gif

	    some long name.jpg      becomes    some-lon.jpg

	
	If you need to know what the original long filename of the embedded binary 
	was, you'll have to load the file into a text editor and look through the 
	MIME header for a line containing: 

              Content-Disposition: inline; filename="some long filename.jpg"

	or:

             Content-Disposition: attachment; filename="some long filename.jpg"
	
	
	If the filename contains any other non-dos-supported characters besides
	spaces in the first eight characters, SJHb64 will pop up a dialog announcing
	that it cancelled the save operation and proceed to ignore the file.

	This applies even if you are running Windows 95. Of course, you can also go
	back and rename the former long filenamed binary if you are running Windows 95. 


	User Agreement
        ______________


	SJHb64 is free, and you don't have to register it or pay us for it. If you 
	decide to use the program, you must agree to two conditions:

	1) This software is offered for use as is, and no warranty
	is stated or implied.  SJHDesign is not responsible for any 
	loss of data, damage to hardware nor any resulting loss of
        time or revenue resulting from the use of this program. Like 
	all software, this program is utilized entirely at the user's risk.

	2) We are not responsible for all of the hacked Base64 files floating 
	around the net. If SJHb64 cannot correctly decode a file containing one
	of the supported binary types mentioned above, chances are the data itself
	is corrupt. The same is true if you have a file that decodes OK but won't
	load in your JPEG or GIF viewer or whatever. With all of the poorly written
	encoders and bad phone lines in this world, it's a wonder that ANY files
	get to your hard drive in one piece. Our own experience is that about 10%
	of the Base64 encoded files and 30% of the UUEncoded files on the net are 
	corrupt. If you have problems decoding a file, DON'T EMAIL US ABOUT IT.
	Take a look at the file BASE64.TXT in this archive. It has a lot of tips
	for troubleshooting problem Base64 files.


	Other Software from SJHDesign
        _____________________________

	One of the reasons we posted this utility is that we wanted to spread the
	word about our state of the art image editor, DROPVIEW\IP. Like SJHb64, the 
	design philosophy behind DROPVIEW\IP is different from any other image editor.
	We have tried to take the image processing tasks you perform every day
	and make them as fast and automatic as possible. Things like batch file
	conversion, batch printing and batch image processing will automate those
	tedious repetitive tasks we all can't stand. If you need a program that
	has these features plus full drawing capabilities, pixel level editing, 
	thmubnails and auto indexing, icon editing, wallpaper changing, smart UUE
	and Base64 encoding\decoding, powerful image processing features, and
	a unique Drag & Drop interface you should take a look at Dropview\IP. 
	Version 3.1 will be available by June on CIS, AOL and USENET. You can also 
	find version 2.01 almost anywhere and if you register it for $34.95, you'll 
	automatically get an upgrade. 
	 
	

  	  Inquiries about our software should be directed to:

	  Compuserve : 70144,3033
	  AOL        : SJHDESIGN
	  Internet   : SJHDES@ibm.net
	 



         
     	
                             

