home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / MSJV5-6.ZIP / FORM2.ZIP / FORM1.C < prev    next >
C/C++ Source or Header  |  1990-11-01  |  3KB  |  136 lines

  1. /*
  2.  * FORM LIBRARY - INITIALIZATION MODULE
  3.  *
  4.  * LANGUAGE      : Microsoft C 5.1
  5.  * MODEL         : medium
  6.  * ENVIRONMENT   : Microsoft Windows 3.0 SDK
  7.  * STATUS        : operational
  8.  *
  9.  *    Eikon Systems, Inc.
  10.  *    989 East Hillsdale Blvd, Suite 260
  11.  *    Foster City, California 94404
  12.  *    415-349-4664
  13.  *
  14.  * 07/12/90 1.00 - Kevin P. Welch - initial creation.
  15.  *
  16.  */
  17.  
  18. #define  NOCOMM
  19.  
  20. #include <windows.h>
  21.  
  22. #include "form.h"
  23. #include "form.d"
  24.  
  25. /* global variables */
  26. FORM        FormInfo;
  27.  
  28. /* */
  29.  
  30. /*
  31.  * FormInit( hInstance ) : HANDLE
  32.  *
  33.  *    hInstance      handle to dll instance
  34.  *
  35.  * This function initializes the data entry form library.  This includes
  36.  * saving the current library instance handle.  If the initialization
  37.  * process was successful the dll instance handle is returned.
  38.  *
  39.  */
  40.  
  41. HANDLE FAR PASCAL FormInit(
  42.    HANDLE      hInstance )
  43. {
  44.    HANDLE      hResInfo;
  45.    HANDLE      hResData;
  46.    LPSTR       lpResData;
  47.  
  48.    /* proceed if first time */
  49.    if ( hInstance && !FormInfo.hInstance ) {
  50.  
  51.       /* initialization */
  52.       FormInfo.wPages = 0;
  53.       FormInfo.hTempData = NULL;
  54.       FormInfo.fnOldMsgHook = NULL;
  55.       FormInfo.hInstance = hInstance;
  56.  
  57.       StringCopy(
  58.          FormInfo.szTitle, 
  59.          "Form Library", 
  60.          sizeof(FormInfo.szTitle)
  61.       );
  62.  
  63.       /* find form information */
  64.       hResInfo = FindResource( hInstance, "FORM", RT_RCDATA );
  65.       if ( hResInfo ) {
  66.  
  67.          /* load resource information */
  68.          hResData = LoadResource( hInstance, hResInfo );
  69.          if ( hResData ) {
  70.  
  71.             /* lock resource data */
  72.             lpResData = LockResource( hResData );
  73.             if ( lpResData ) {
  74.  
  75.                /* extract number of pages & form name */
  76.                FormInfo.wPages = *((WORD FAR *)lpResData);
  77.                StringCopy(
  78.                   FormInfo.szTitle, 
  79.                   lpResData+2, 
  80.                   sizeof(FormInfo.szTitle)
  81.                );
  82.  
  83.                /* unlock resource data */
  84.                UnlockResource( hResData );
  85.  
  86.             } else
  87.                WARNING( NULL, "Unable to access form!" );
  88.  
  89.             /* free resource data */
  90.             FreeResource( hResData );
  91.  
  92.          } else
  93.             WARNING( NULL, "Unable to load form!" );
  94.  
  95.       } else
  96.          WARNING( NULL, "Unable to find form!" );
  97.  
  98.    }
  99.  
  100.    /* return successfully */
  101.    return( hInstance );
  102.  
  103. }
  104.  
  105. /* */
  106.  
  107. /*
  108.  * WEP( wValue ) : WORD;
  109.  *
  110.  *    wValue       system exit code
  111.  *
  112.  * This function is called when the DLL is unloaded by the system.
  113.  * It enables the library to perform any cleanup necessary.
  114.  *
  115.  */
  116.  
  117. WORD FAR PASCAL WEP(
  118.     WORD        wValue )
  119. {
  120.     WORD        wResult;
  121.  
  122.     /* process exit value */
  123.     switch( wValue )
  124.         {
  125.     case WEP_FREE_DLL : /* DLL is being released */
  126.     case WEP_SYSTEM_EXIT : /* system is being shut down */
  127.     default :
  128.         wResult = 1;
  129.         break;
  130.     }
  131.  
  132.     /* return result */
  133.     return( wResult );
  134.  
  135. }
  136.