Annotation of pmsdk/samples/clock/clock.c, revision 1.1.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.