     Information about Developer Helper, release 1.0Beta

     The Developer Helper Application Framewien is a framework
written in C++ for use in developing high quality graphical 
applications for the 32 bit OS/2 (versions 2.0 and higher).  Included 
in this framework are objects to assist in developing all types of 
applications (both character based and Presentation Manager), including 
object classes to handle threads, processes, abstract data types and 
user interface.  The overriding design goal behind Developer Helper 
is to provide the most functionality possible, exposing the great 
primitives and API's provided by IBM to the application developer, and 
encapsulating much of the trivial and error prone of setting up the 
base of applications.
     
     To develop with Developer Helper, all a developer has to do is 
concentrate on their application, and not concentrate on wrestling with
 many arcane API calls.   DHO currently supports IBM C-Set++, GCC/2, and
EMX  binaries, with source code available for adaption to other C++
compilers which are available for OS/2.  Included in this package are C++
source and header files, library files, a tutorial, this document and some 
samples.


===========================================================================
Installation:

   The DHO package is contained in a single zip file.  Unzip the file 
passing the decompression software the option to retain directory 
structure.  Assuming the package was decompressed in the root directory
of a disk, all one has to do is to include the dho\include directory 
in your compiler's search path, and link to an approriate library
found in \dho\lib.  Source code is provided for debugging purposes
in \dho\source.  Examples of makefiles for the C-Set, GCC/2 and EMX-
gcc compilers are included in this distribution.


Using DHO in a DLL
     The DHO library can be used in a DLL, but the following two precautions 
should be taken into account.     First, the utility function 
void setModule(char *modName)  must be called in some sort of DLL 
initialization function is the DLL is to access resources which are bound
 to the DLL (use of Dialogs bound to the DLL are one example).  Pass 
setModule the name of the DLL, and all additional resources will 
be loaded from the DLL.  If for some reason the DLL code must use resources 
bound to the executable, pass a NULL string to this function, and DHO will
then load all it's resources from the executable.

     Secondly, if classes are exposed or are passed into funtions located 
in a DLL, care must be taken to ensure that the version of DHO which is 
statically linked into the DLL and the version which is linked 
into the executable are the same.  Again, use of the utility functions 
const char *DHOgetBaseVersion() and const char *DHOgetRev() can be used 
to ensure proper linkage.  An example of this follows.

---------------------------------------------------------
INT main(void)
{
   initDLL(DHOgetBaseVersion(), DHOgetRev());
   return 0;
}

APIRET EXPENTRY initDLL(const char *base, const char *rev)
{
   if ((!strcmp(base, DHOgetBaseVersion())) || 
       (!strcmp(rev, DHOgetRev())))
   {
         // -- handle error condition gracefully
         exit(1);
   }
}

---------------------------------------------------------

     In most cases, if the base version of the DLL matches the base version
of the executable, the program will run properly.  The base version of the 
library changes only when there are interface changes to the libraries.  
The revision number is increased only when there are internal bug fixes and 
enhancements which do not modify any interfaces.   In the future, a DLL 
version of DHO will eliminate this need for version checking since it will be 
possible for the executable and the dll to dynamically link to the DHO 
library at runtime.



===========================================================================
Licensing Information and Disclaimer

   This library is released as is, and carries no warranty.  The author 
assumes no liability for dmamages which may vbe caused by this library,
nor for does the author guarantee that this API will remain contant

   This release (1.0Beta) is provided free to any non-commercial developer
provided that the developer sends comments and criticisms about this class 
library along with a brief description of the product developed with DHO to 
the author.  Commercial Developers may contact the author for terms regarding
DHO's commercial use.  In any circumstance, the notice "portions (c) 1994-95
Tom Bednarz" must appear in the product information dialog box.


===========================================================================
Package Contents:
   This development kit includes binaries for 3 major OS/2 compilers,
header files for use with the library, full source for the library,
a tutorial and a samples.   There are 6 binary libraries included;
they are:

   dhoiccd.lib            --  Debug library for use with IBM C-Set++
   dhoicc.lib             --  Optimized library for use with IBM C-Set++
   dhogccd.lib            --  Debug library for use with GCC/2
   dhogcc.lib             --  Optimized library for use with GCC/2
   dhoemxd.lib            --  Debug library for use with GCC andEMX
   dhoemx.lib             --  Optimized library for use with GCC and EMX


===========================================================================
New in version 1.0B

   *  improved windowing model -- now includes a basic starting point
      for creating new window types, and also includes various
      other pre0fabricated window classes (such as frame windows).

   *  support for DLL's

   *  a thread class

   *  full CUA '91 control support.

   *  improved examples, and a full tutorial


===========================================================================
Known Limitations:

   The method void removeItem(USHORT item) in the class TContainerWindow
   currently does not work properly.  A fix is in the works, and will be available
   in the next release of Developer Helper.

   Please remember that this is a Beta version, and that I will attempt to fix bugs
   and problems which are submitted to me.  It is my goal to create a premier freeware
   application framework which can be used and adapted by developers to create
   high quality OS/2 software.


===========================================================================
Please send any comments, bug reports, or questions to:

           Tom Bednarz
           766 Elm Street
           Somerset, MA 02726

           e-mail: ab150@osfn.rhilinet.gov


this package is  (c) 1994-95 Tom Bednarz, Jr.
C-Set++ and OS/2 are copyrighted trademarks of IBM Corporatrion

