Annotation of os232sdk/toolkt20/c/samples/semaph/sem_init.c, revision 1.1.1.1

1.1       root        1: /*==============================================================*\
                      2:  *  sem_init.c - routines for initialization and exit processing       *
                      3:  *      Created 1990, Microsoft, IBM Corp.                      *
                      4:  *--------------------------------------------------------------*
                      5:  *                                                             *
                      6:  *  This module contains the code for application initialization*
                      7:  *  as well as the code for exit list processing               *
                      8:  *                                                             *
                      9:  *--------------------------------------------------------------*
                     10:  *                                                             *
                     11:  *  This source file contains the following functions:         *
                     12:  *                                                             *
                     13:  *     Init() - initialization routines                        *
                     14:  *     ExitProc(usTermCode) - exit list processing procedure   *
                     15:  *                                                             *
                     16: \*==============================================================*/
                     17: 
                     18: /*--------------------------------------------------------------*\
                     19:  *  Include files, macros, defined constants, and externs      *
                     20: \*--------------------------------------------------------------*/
                     21: 
                     22: #define  LINT_ARGS
                     23: 
                     24: #define  INCL_WIN
                     25: #define  INCL_DOSPROCESS
                     26: #include <os2.h>
                     27: #include <string.h>
                     28: #include "sem_main.h"
                     29: #include "sem_xtrn.h"
                     30: /*--------------------------------------------------------------*\
                     31:  *  Global variables                                           *
                     32: \*--------------------------------------------------------------*/
                     33: 
                     34: /*--------------------------------------------------------------*\
                     35:  *  Entry point declarations                                   *
                     36: \*--------------------------------------------------------------*/
                     37: 
                     38: /****************************************************************\
                     39:  *  Initialization routine                                     *
                     40:  *--------------------------------------------------------------*
                     41:  *                                                             *
                     42:  *  Name:   Init()                                             *
                     43:  *                                                             *
                     44:  *  Purpose: Performs initialization functions required        *
                     45:  *             before the main window can be created.          *
                     46:  *                                                             *
                     47:  *  Usage:  Called once before the main window is created.     *
                     48:  *                                                             *
                     49:  *  Method:                                                    *
                     50:  *         - installs the routine ExitProc into the            *
                     51:  *             DosExitList chain                               *
                     52:  *         - registers all window classes                      *
                     53:  *         - performs any command line processing              *
                     54:  *                                                             *
                     55:  *  Returns:                                                   *
                     56:  *         TRUE - initialization is successful                 *
                     57:  *         FALSE - initialization failed                       *
                     58: \****************************************************************/
                     59: 
                     60: BOOL Init(VOID)
                     61: {
                     62:     /* Add ExitProc to the exit list to handle the exit processing */
                     63:     if(DosExitList(EXLST_ADD, (PFNEXITLIST)ExitProc))  {
                     64:            return FALSE;
                     65:     }
                     66: 
                     67:     /* load application name from resource file */
                     68:     if(!WinLoadString(hab, NULL, IDS_APPNAME, MAXAPPNAMELEN, szAppName))
                     69:            return FALSE;
                     70:    
                     71:     /* register the main client window class */
                     72:     if(!WinRegisterClass(hab,
                     73:                        (PSZ)szAppName,
                     74:                        (PFNWP)MainWndProc,
                     75:                        CS_SIZEREDRAW | CS_SYNCPAINT | CS_CLIPCHILDREN,
                     76:                        0))  {
                     77:        return FALSE;
                     78:     }
                     79: 
                     80:     /* initialize data structures */
                     81:     InitSemaphExample ();
                     82:     /*--------------------------------------------------*\
                     83:      *     Add any command line processing here        *
                     84:     \*--------------------------------------------------*/
                     85: 
                     86: 
                     87:     return TRUE;
                     88: 
                     89: }  /* Init() */
                     90: 
                     91: 
                     92: 
                     93: /****************************************************************\
                     94:  *  Exit list processing procedure                             *
                     95:  *--------------------------------------------------------------*
                     96:  *                                                             *
                     97:  *  Name:   ExitProc(usTermCode)                               *
                     98:  *                                                             *
                     99:  *  Purpose: Cleans up certain resources when the application  *
                    100:  *             terminates                                      *
                    101:  *                                                             *
                    102:  *  Usage:  Routine is called by DosExitList when the          *
                    103:  *         application exits                                   *
                    104:  *                                                             *
                    105:  *  Method: global resources, such as the main window and      *
                    106:  *         message queue, are destroyed and any system         *
                    107:  *         resources used are freed                            *
                    108:  *                                                             *
                    109:  *  Returns:  Returns EXLST_EXIT to the DosExitList handler    *
                    110:  *                                                             *
                    111: \****************************************************************/
                    112: 
                    113: VOID PASCAL FAR ExitProc(usTermCode)
                    114: USHORT usTermCode;     /* code for the reason for termination */
                    115: {
                    116: 
                    117:     WinDestroyWindow(hwndMainFrame);
                    118: 
                    119:     /*--------------------------------------------------*\
                    120:      *     Any other system resources used             *
                    121:      *     (e.g. memory or files) should be freed here *
                    122:     \*--------------------------------------------------*/
                    123: 
                    124:     WinDestroyMsgQueue(hmq);
                    125: 
                    126:     WinTerminate(hab);
                    127: 
                    128:     DosExitList(EXLST_EXIT, 0L);    /* termination complete */
                    129: 
                    130:     /* This routine currently doesn't use the usTermCode parameter so *\
                    131:      * it is referenced here to prevent an 'Unreferenced Parameter'  *
                    132:     \* warning at compile time                                       */
                    133: 
                    134:     usTermCode;
                    135: 
                    136: }   /* ExitProc() */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.