****************************************************************************
*                                                                          *
*       HappyMail                                                          *
*                                                                          *
*       Version 1.19 Source Code Release Notes                             *
*                                                                          *
*       The purpose of this document is to assist a programmer in          *
*       compiling the HappyMail system.  In addition to this document,     *
*       you may wish to peruse the code which contains embedded comments.  *
*                                                                          *
****************************************************************************


Contents
========

1.  Disclaimer Notice
2.  References
3.  Required Files
4.  Application Building
5.  What's Missing
6.  Who to complain to


----------------------------------------------------------------------------

1.  Disclaimer Notice
=====================


The HappyMail program and the information provided hereunder (collectively
referred to as "software") is provided as-is without support or warranty 
of any kind, either express or inplied, including but not limited to the
implied warranties of merchantability and fitness for a particular purpose.
In no event shall the developer or the Financial Management Service, 
Department of the Treasury, be liable for any damages whatsoever, including
direct, indirect, incidental, consequential, loss of business profits or
special damages, even if the developer or the Finanacial Management Service,
Department of the Treasury, have been advised of the possibility of such 
damages.

This software may be copied and distributed royalty-free subject to the 
following conditions:

1. If the software is distributed alone, without inclusion in a software
product of your own, you must copy all software without modification and
must include all source code and documentation information.  If you 
incorporate the software in conjuction with and as a part of your software
product which adds substantial value to the software, you may modify and
include portions of the software.

2.  You must place all protective disclaimers and notices contained on the
software on all copies of the software, whether distributed alone or as part
of your own software product.

3.  Unless the software is incorporated in your software product which adds
substantial value, you may not distribute this software for profit.

4.  You may not use the name, logo, or trademarks of the developer or the
Financial Management Service, Department of the Treasury, to market your
software product.

5.  You agree to indemnify, hold harmless, and defend the developer and 
the Financial Management Service, Department of the Treasury, from and
against any claims or lawsuits, including attorneys' fees, that arise or
result from the use or distribution of your software product and any 
modifications of the software.


----------------------------------------------------------------------------

2.  References
==============


Before attempting to modify the HappyMail system, the programmer should be
fairly familiar with the following reference materials :
   *	The Vines Network Mail Option Guide
   *	The Vines Application Toolkit -- Mail Client Programming Interface
   *	Microsoft Windows -- Programmer's Reference Volumes 1-4
   *	The Windows Interface: An Application Design Guide
   *	Programming Windows by Charles Petzold



----------------------------------------------------------------------------

3.  Required Files
==================


The HappyMail system is composed of numerous files of various types:  code
files, header files,  module definition files, library files, dynamic linked
library files, resource library files, and a project file.  Following is a
list of all HappyMail files, categorized by the file types.

Code Files
about.c        address.c       attach.c       bargraf.c
file.c         folders.c       foldrlib.c     font.c
hmail.c        import.c        ini_lib.c      launch.c
lettrlib.c     library.c       list.c         message.c
move.c         options.c       print.c        read.c
search.c       sort.c          status.c       superlib.c
view.c         winlib.c        write.c        writelib.c

Header Files
bwcc.h         commdlg.h       defines.h      dir.h
dos.h          io.h            mmsystem.h     mymail.h
stat.h         stdio.h         stdlib.h       string.h
vnsdef.h*      vnsmail.h*      vnsst.h*       vnsstda.h*
windows.h

*These files are located on the DOS/UNIX  file service in the
\disk1\local\pc\include directory.

Module Definition Files
mail.def

Library Files (linked at compile time)
vnsmailw.lib   vnsapiw.lib     cwm.lib        bwcc.lib

Dynamic Link Library Files (linked at run time)
vnsmail.dll    vnsapi.dll      commdlg.dll    bwcc.dll

Resource Files
mail.rc


----------------------------------------------------------------------------

4.  Application Building
========================


Before attempting to compile or link the HappyMail system, the programmer
should have the following software already installed and configured:
*	Vines 4.11 (or higher)
*	Vines 4.11 Application Toolkit
*	Vines Network Mail
*	Borland C++ for Windows version 3.1 (or later)
*   DOS/UNIX Bridge File Service

For more details on the Application Toolkit and the DOS/UNIX Bridge File
Service, see the Vines Application Developer's Guide which comes with the
Vines Application Toolkit.

The rest of this chapter assumes the programmer is using Borland C++ 3.0 or
higher.  If the programmer must use another brand compiler(e.g. Microsoft C),
I offer my heartfelt condolences.


Creating a Borland Project File
-------------------------------
To create a Borland project file for HappyMail,  begin by selecting Open
Project from the Project Menu (from within Borland C++).  After entering a
new file name for the project and selecting [OK], a new project file will be
created and opened.  Now select Add Item from the Project Menu, and add all
the code, library, module definition, and resource files that are listed in
the Required Files section to the new project file.

Once the new project file is populated with all its component files, the
following options must be set from the Options menu:
*   From the Code Generation Options dialog, select the medium model option,
    select the default for memory model option,  and add the following
    defines: S4DLL;S4WINDOWS.
*   From the Directories Option dialog, the following directories should be
    added:

Include Directories:
c:\bc\include;                  /*** Directory for Borland C headers      ***/
u:\disk1\local\pc\include\win3; /*** Directories for Vines headers --     ***/
u:\disk1\local\pc\include;      /*** The U: drive is the DOS/UNIX  Bridge ***/
                                /*** File Service.                        ***/
p:\mail                         /*** Home directory for HappyMail.        ***/

Library Directories:
c:\bc\lib;                      /*** Directory for Borland C libraries    ***/
u:\disk1\local\pc\lib\win3;     /*** Directories for Vines libraries.     ***/
u:\disk1\local\pc\lib


Editing, Compiling and Linking
------------------------------
Once the project file has been created, individual components may be edited
by double-clicking on their file names from the Project window.  Alternatively,
a file may be opened or created by using the File menu.  (Note: if a new file
is created it should be added to the project file by selecting Add Item from
the Project Menu.)

Once the modifications are complete, the component file may be compiled by
highlighting the file name in the Project window and selecting Compile from
the Compile Menu.  A file may also be compiled by giving the focus to the
file edit window which contains the desired file, and then selecting Compile
from the Compile Menu.

If all files need to be re-compiled, selecting Build All from the Compile
Menu will re-compile and re-link all files in one step.  This process is
quite lengthy, however, and rarely is it necessary to re-compile all files.

The most preferred method for re-compiling and linking while developing is to
select Run from the Run menu.  This will cause Borland C++ to re-compile any
file that has been modified (including the resource file) and will re-link or
re-bind if necessary.  Once the application has been rebuilt,  Borland C++
will then execute it.



----------------------------------------------------------------------------

5.  What's Missing
==================


The following is a list of files that are necessary to compile HappyMail but
have not been included with the source:
- Vines toolkit header files
- Vines toolkit library files
- Borland C++ header files
- Borland C++ library files

Additionaly, some items have been removed from the source code due to the
licensing agreements of those products.  These items include, the spell
checker, the text filters, and the date/time controls used with the defer
and expire dates.


----------------------------------------------------------------------------

6.  Who To Complain To
======================


First, remember that HappyMail is not officially supported and no guarantees
or warranties are offered.  With that in mind, I do encourage bug reports,
enhancement suggestions, and general comments, so, send your e-mail to:

X.400:       N=DAVID RITCHIE/C=US/A=TELEMAIL/P=GOV+FMS
Internet:    DAVID.RITCHIE@FMS.SPRINT.COM
CompuServe:  73150,2745

And, if all else fails...

David Ritchie
Financial Management Service
3700 East-West Highway
Hyattsville, MD 20782



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

