***************************************************************************
*  DSOM SAMPLE PROJECT: Readme File (READ.ME)                             *
*                                                                         *
* COPYRIGHT: Copyright(C) International Business Machines Corp.,1992,1995.*
*                                                                         *
* DISCLAIMER OF WARRANTIES:                                               *
*   The accompanying code is sample code created by the IBM Corporation.  *
*   This sample code is not part of any standard IBM product and is       *
*   provided to you solely for the purpose of assisting you in the        *
*   development of your applications.  The code is provided "AS IS",      *
*   without warranty of any kind.  IBM shall not be liable for any        *
*   damages arising out of your use of the sample code, even if they      *
*   have been advised of the possibility of such damages.                 *
***************************************************************************
SAMPLE - DSOM
   DESCRIPTION:
        SOM is a C++ program that uses native SOM classes enabled by 
        VisualAge for C++'s Direct-to-SOM (DTS) support and the SOM toolkit.
        The test case shows how easily one can create SOM classes using the 
        C++ language and VA for C++'s DTS support. Furthermore it provides an
        example of how SOM classes can be exported to IDL so that clients can
        exploit a SOM enabled class library even though they are not using 
        a DTS compiler.

   TASK:
        Two client programs create and access instance data of a SOM class.
        The first program (hhmain.exe) uses DTS support for compiling the 
 	client code as well as in class library creation. The second program 
	(xhmain.exe) does not require DTS support for the client code.

   CONCEPT/FEATURE:
        SOM is IBM's System Object Model, a new object-oriented programming 
        technology for building, packaging, and manipulating binary class 
        libraries. VisualAge for C++ (VA for C++) provides DTS support for 
        C++, by allowing a user to create native SOM classes in C++ and to 
        manipulate non-native SOM classes through the use of "binding files" 
        created by the SC compiler. VA for C++ also generates complete 
        interface definiton (IDL) files directly from C++ class definitions, 
        so that the users in other languages can also exploit SOM enabled C++ 
	class libraries.

        The sample program is an example incorporating all the concepts and 
        features listed above:

        - class Info is a native DTS class.
        - a DLL is created for class Info.
        - an IDL definition is generated for class Info and placed in file
          info.idl.
        - an "XH" binding file is generated from Info's IDL class definition.
        - two client programs "hhmain.cpp" and "xhmain.cpp", both create 
          a instance of class Info and query it's instance data.

        For more information on VA for C++'s DTS support, SOM frameworks, 
        please refer to VA for C++'s Programming Guide, and SOMobjects 
        Developer Toolkit Users Guide, respectively.

   SOURCE FILE LOCATION:
        X:\ibmcpp\samples\compiler\SOM

        where X: is the drive you installed the samples and document
        component of VisualAge C++.


HOW TO RUN THE SAMPLE:

   FROM THE COMMAND LINE:
        Simply type the name of the .EXE file, that is:

            HHMAIN and XHMAIN


HOW TO BUILD THE SAMPLE PROJECT YOURSELF:

   FROM THE COMMAND LINE:
        The steps to build the SOM sample are:

        NMAKE
        copy xhmain.exe, hhmain.exe, and mycls.dll to the PPC.

        Ensure environment is set up properly for SOM on the PPC.

        To run the sample project, see HOW TO RUN THE SAMPLE
        project above.


SOURCE FILES - DSOM

   Required files:

   README
        Description and instructions for the sample.

   MAKEFILE
        Builds the required DLL and executable files.

   HHMAIN.EXE and XHMAIN.EXE
        Sample's executable files.

   INFO.HH
        Definition of a server class Info.

   MYCLS.CPP
        Definition of class Info's construct and any required function 
        definitions.

   HHMAIN.CPP
        Client program which uses native C++ class definitions in order to
        create and manipulate a remote object.

   XHMAIN.CPP
        Client program which uses SC compiler generated bindings in order to
        create and manipulate a remote object.

