www.pudn.com > helpview.zip > readme.txt, change:1997-10-15,size:4761b

This zip file contains the binaries and source code files 
for the TwinHelp help file viewer and other documentation 
files mentioned in my article. 
The zip file should contain the following files and  
readme.txt	- This readme file. 
twinhelp.exe	- Help file viewer. 
twinhelp.dll	- DLL for the help file viewer that really 
		  does all of the work. 
twinhelp.ini	- Help file viewer's initialization file. 
twinhelp.hlp	- Help file for the help file viewer 
helpex.hlp	- Sample help file that Microsoft shipped with its 
		  help compiler. 
data#1.doc	- A Microsoft Word document containing detailed 
                  information about the codes used in the Data #1  
                  block of a General TopicLink record in  
                  the |TOPIC baggage file.   
\source 	- Directory containing the source code and  
		  project files for twinhelp.exe and twinhelp.dll. 
\source\help 	- Directory containing the source files for 
		  the help file viewer's own help file  
TwinHelp Help File Viewer 
The Microsoft Visual C++ 4.2 project, twinhelp.mdp, that is  
included in the TwinHelp directory will build an executable  
file called twinhelp.exe and a DLL called twinhelp.dll.   
If you inspect the code for twinhelp.exe, you will find that it  
really does nothing more than load twinhelp.dll and let it do all  
the work.  The elements.c and hlpfile.c files in the DLL are worthy  
of inspection if you want to learn more about the file format  
and get really confused. 
License for Help File Viewer Source Code 
Copyright 1997 Willows Software, Inc.  
This library is free software; you can redistribute it and/or 
modify it under the terms of the GNU Library General Public License as 
published by the Free Software Foundation; either version 2 of the 
License, or (at your option) any later version. 
This library is distributed in the hope that it will be useful, 
but WITHOUT ANY WARRANTY; without even the implied warranty of 
Library General Public License for more details. 
You should have received a copy of the GNU Library General Public 
License along with this library; see the file COPYING.LIB.  If 
not, write to the Free Software Foundation, Inc., 675 Mass Ave, 
Cambridge, MA 02139, USA. 
The viewer does have its limitations but the price is good! 
Key features that you'll find missing include support for bookmarks,  
annotations, printing, and internationalization.  The viewer also  
does not contain support for the new Windows 95 help file format and 
only supports help files compiled with the Windows 3.1 help compiler. 
Printing actually worked in Windows 3.1 and all of the code is there  
to allow it to happen.  Unfortunately, I quickly ported the viewer's  
code to Windows 95 for the DDJ article and somewhere along the way 
printing stopped working.  Huh?  What happened?  Due to time  
constraints, I have not had time to find the offending culprit and  
so I just stubbed the feature out. 
The same goes for metafile support.  At the present time metafiles  
are not being drawn to the screen and only a blank spot appears  
where they should be.  I did quickly look into this and found no  
obvious reason for the problem.  Never enough time... 
Acknowledgments and Thanks! 
My thanks to Pete Davis and Ron Burk for sharing their own research  
about the file’s format in the pages of Dr. Dobb's Journal.  Their articles  
appeared in the "Undocumented Corner" section of DDJ in September and  
October of 1993, and provided a thorough overview of the organization  
of the entire help file.  While I don't specifically acknowledge their 
contributions in every source code, much of the information in the  
DLL's hlpfile.c and hlpfile.h source files is derived from their DDJ 
articles and the source code distributed for the articles.  Thank you  
Pete and Ron! 
I'd also like to thank two of my former coworkers, Svetlana Kondakova  
and Mike Talyansky, for the help and support that they gave me  
during the times that I needed an extra push!  Without  
them, I would still probably be scratching my head about some 
of the help file's cryptic info.  Thanks guys for your help and the bad Russian 
If you learn about something in the |TOPIC baggage file that is not  
handled properly by my code, please drop me a line and let me know  
about it.  I do hope that the fruits of my journey can benefit 
your work and wish you success in your efforts! 
Paul Kissel