Annotation of pmsdk/samples/clock/clock.c, revision 1.1

1.1     ! root        1: /*
        !             2:     clock.c    Presentation Manager Analog Clock Application
        !             3:     Created by Microsoft Corporation, 1989
        !             4: */
        !             5: #define INCL_PM
        !             6: #include <os2.h>
        !             7: #include <string.h>
        !             8: #include "res.h"
        !             9: 
        !            10: extern MRESULT CALLBACK ClkWndProc ( HWND , USHORT , MPARAM , MPARAM ) ;
        !            11: 
        !            12: int cdecl main ( int argc , char * argv [ ] ) ;
        !            13: BOOL ClkInit ( VOID ) ;
        !            14: HWND hwndFrame ;
        !            15: HAB hab ;
        !            16: HMQ hmq ;
        !            17: HSWITCH hsw ;
        !            18: extern HPS hps ;
        !            19: BOOL fStartAsIcon = FALSE ;
        !            20: 
        !            21: /*
        !            22:     main(argc, argv)   Main program
        !            23: */
        !            24: int cdecl main ( int argc , char * argv [ ] )
        !            25: {
        !            26:     QMSG qmsg ;
        !            27: 
        !            28:     /* have we been asked to start ourselves as an icon? */
        !            29:     if (argc > 0) {
        !            30:        if ( strcmpi ( argv [ 1 ] , "iconic" ) == 0 )
        !            31:            fStartAsIcon = TRUE ;
        !            32:     }
        !            33: 
        !            34:     if ( ClkInit ( ) ) {
        !            35: 
        !            36:        while ( WinGetMsg ( hab , & qmsg , NULL , 0 , 0 ) )
        !            37:            WinDispatchMsg ( hab , & qmsg ) ;
        !            38: 
        !            39:        /* Clean up code */
        !            40:        GpiDestroyPS( hps );
        !            41:        WinRemoveSwitchEntry ( hsw ) ;
        !            42:        WinDestroyWindow ( hwndFrame ) ;
        !            43:        WinDestroyMsgQueue ( hmq ) ;
        !            44:        WinTerminate ( hab ) ;
        !            45:     }
        !            46: 
        !            47:     return 0 ;
        !            48: }
        !            49: 
        !            50: /*
        !            51:     ClkInit()          Clock Initialization routine
        !            52:     Returns TRUE if successful.
        !            53: */
        !            54: BOOL ClkInit ( )
        !            55: {
        !            56:     /* application name, switch list info, and frame creation flags */
        !            57:     static PSZ pszClkName = "Clock" ;
        !            58:     static SWCNTRL swctl = { 0 , 0 , 0 , 0 , 0 , SWL_VISIBLE ,
        !            59:                             SWL_JUMPABLE , "Clock" , 0 } ;
        !            60:     static LONG fcf = FCF_SIZEBORDER | FCF_TITLEBAR | FCF_MINMAX
        !            61:                      | FCF_SYSMENU ;
        !            62: 
        !            63:     HWND hwndClient ;
        !            64:     PID pid ;
        !            65:     TID tid ;
        !            66: 
        !            67:     if ( ( hab = WinInitialize ( NULL ) ) == NULL )
        !            68:        return FALSE ;
        !            69: 
        !            70:     if ( ( hmq = WinCreateMsgQueue ( hab , NULL ) ) == NULL ) {
        !            71:        WinTerminate ( hab ) ;
        !            72:        return FALSE ;
        !            73:     }
        !            74: 
        !            75:     if ( ! WinRegisterClass ( hab , pszClkName , ClkWndProc ,
        !            76:                              CS_SIZEREDRAW , 0 ) ) {
        !            77:        WinDestroyMsgQueue ( hmq ) ;
        !            78:        WinTerminate ( hab ) ;
        !            79:        return FALSE ;
        !            80:     }
        !            81: 
        !            82:     hwndFrame = WinCreateStdWindow ( HWND_DESKTOP , ( ULONG ) NULL , & fcf ,
        !            83:                                     pszClkName , pszClkName , WS_VISIBLE ,
        !            84:                                     NULL , ID_RESOURCE , & hwndClient ) ;
        !            85: 
        !            86:     if ( hwndFrame == NULL ) {
        !            87:        WinDestroyMsgQueue ( hmq ) ;
        !            88:        WinTerminate ( hab ) ;
        !            89:        return FALSE ;
        !            90:     }
        !            91: 
        !            92:     /* add ourselves to the switch list */
        !            93:     WinQueryWindowProcess ( hwndFrame , & pid , & tid ) ;
        !            94:     swctl . hwnd = hwndFrame ;
        !            95:     swctl . idProcess = pid ;
        !            96:     hsw = WinAddSwitchEntry ( & swctl ) ;
        !            97: 
        !            98:     return TRUE ;
        !            99: }

unix.superglobalmegacorp.com

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