Annotation of pmsdk/samples/template/tempres.c, revision 1.1.1.1

1.1       root        1: /****************************** Module Header ******************************\
                      2: * Module Name: tempres.c
                      3: *
                      4: *   Resident portion of Presentation Manager Template Application
                      5: *
                      6: *   Created by Microsoft Corp., 1988
                      7: *
                      8: \***************************************************************************/
                      9: 
                     10: #define INCL_WIN
                     11: 
                     12: #include <os2.h>
                     13: #include "template.h"
                     14: 
                     15: extern HAB     hAB;
                     16: extern HMQ     hMsgQ;
                     17: extern HWND    hwndTemplate;
                     18: extern HWND    hwndTemplateFrame;
                     19: 
                     20: SHORT cdecl main(  )
                     21: {
                     22:     QMSG   qMsg;
                     23: 
                     24:     hAB   = WinInitialize(NULL);
                     25:     hMsgQ = WinCreateMsgQueue( hAB, 0 );
                     26: 
                     27:     if ( !TemplateInitApp( ) )
                     28:         return( FALSE );
                     29: 
                     30:     while( WinGetMsg( hAB, (PQMSG)&qMsg, (HWND)NULL, 0, 0 ) )
                     31:     {
                     32:         WinDispatchMsg( hAB, (PQMSG)&qMsg );
                     33:     }
                     34: 
                     35:     WinDestroyWindow( hwndTemplateFrame );
                     36:     WinDestroyMsgQueue( hMsgQ );
                     37:     WinTerminate( hAB );
                     38: }
                     39: 
                     40: 
                     41: 
                     42: MRESULT EXPENTRY TemplateWndProc( hWnd, message, mp1, mp2 )
                     43: HWND   hWnd;
                     44: USHORT message;
                     45: MPARAM  mp1;
                     46: MPARAM  mp2;
                     47: {
                     48:     /* Procedures which make up the window class. */
                     49: 
                     50:     HPS     hPS;
                     51:     RECTL   rect;
                     52: 
                     53:     switch( message )
                     54:     {
                     55:         case WM_CREATE:
                     56:             /***********************************************************\
                     57:             *  Window's being created; mp2  contains lpParam field
                     58:             *  passed to CreateWindow
                     59:             \***********************************************************/
                     60:             TemplateCreate( hWnd, (ULONG)mp2 );
                     61:             break;
                     62: 
                     63:         case WM_ACTIVATE:
                     64:             /***********************************************************\
                     65:             *  Window is becoming active window if LOUSHORT(mp1) is
                     66:             *  TRUE, inactive if LOUSHORT(mp1) is FALSE.  mp2     is
                     67:             *  the window handle of the window being deactivated.
                     68:             \***********************************************************/
                     69:             if ( SHORT1FROMMP(mp1) && SHORT2FROMMP(mp1) )
                     70:                 WinSetFocus( HWND_DESKTOP, hWnd );
                     71:             break;
                     72: 
                     73:         case WM_SETFOCUS:
                     74:             /***********************************************************\
                     75:             *  The window is getting the focus.  mp1     contains the
                     76:             *  window handle of the window that previously had the focus.
                     77:             \***********************************************************/
                     78:             TemplateSetFocus( hWnd );
                     79:             break;
                     80: 
                     81:         case WM_PAINT:
                     82:             /***********************************************************\
                     83:             *  Time for the window to draw itself.
                     84:             \***********************************************************/
                     85:             hPS = WinBeginPaint( hWnd, (HPS)NULL, (PRECTL)&rect );
                     86:             TemplatePaint( hWnd, hPS );
                     87:             WinEndPaint( hPS );
                     88:             break;
                     89: 
                     90:         case WM_CHAR:
                     91:             /***********************************************************\
                     92:             *  Character input. The low word of mp1     contains the
                     93:             *  key type flags, the high word of mp1     contains the
                     94:             *  auto-repeat count, and the low word of mp2     contains
                     95:             *  the character code.
                     96:             \***********************************************************/
                     97:             TemplateCharInput( hWnd, SHORT1FROMMP(mp2), SHORT1FROMMP(mp1),
                     98:                                 SHORT2FROMMP(mp1) );
                     99:             break;
                    100: 
                    101:         case WM_CLOSE:
                    102:             /***********************************************************\
                    103:             *  message from system to close the Client window.
                    104:             \***********************************************************/
                    105:             TemplateQueryQuit( hWnd );
                    106:             break;
                    107: 
                    108:         case WM_COMMAND:
                    109:             /***********************************************************\
                    110:             *  A menu item has been selected, or a control is notifying
                    111:             *  its parent.  mp1     is the menu item value (for menus),
                    112:             *  or control ID (for controls).  For controls, the low word
                    113:             *  of mp2     has the window handle of the control, and the hi
                    114:             *  word has the notification code.  For menus, mp2     contains
                    115:             *  0L.
                    116:             \***********************************************************/
                    117:             TemplateCommand( hWnd, SHORT1FROMMP(mp1), SHORT1FROMMP(mp2),
                    118:                             SHORT2FROMMP(mp2));
                    119:             break;
                    120: 
                    121:         case WM_TIMER:
                    122:             /***********************************************************\
                    123:             *  Timer message.  mp1     contains the timer ID value
                    124:             \***********************************************************/
                    125:             TemplateTimer( hWnd, SHORT1FROMMP(mp1) );
                    126:             break;
                    127: 
                    128:         case WM_VSCROLL:
                    129:             /***********************************************************\
                    130:             *  Vertical scroll bar input.  mp1     contains the
                    131:             *  scroll code.  For the thumb movement codes, the low
                    132:             *  word of mp2     contain the new scroll position.
                    133:             *  Possible values for mp1     are: SB_LINEUP, SB_LINEDOWN,
                    134:             *  SB_PAGEUP, SB_PAGEDOWN, SB_THUMBPOSITION, SB_THUMBTRACK
                    135:             \***********************************************************/
                    136:             TemplateVertScroll( hWnd, HIUSHORT(mp2), LOUSHORT(mp2) );
                    137:             break;
                    138: 
                    139:         case WM_HSCROLL:
                    140:             /***********************************************************\
                    141:             *  Horizontal scroll bar input.  Parameters same as for
                    142:             *  WM_HSCROLL.  UP and DOWN should be interpreted as LEFT
                    143:             *  and RIGHT, respectively.
                    144:             \***********************************************************/
                    145:             TemplateHorzScroll( hWnd, HIUSHORT(mp2), LOUSHORT(mp2) );
                    146:             break;
                    147: 
                    148:         case WM_ERASEBACKGROUND:
                    149:             /*
                    150:              * Let frame control erase background for us
                    151:              */
                    152:             return (TRUE);
                    153:             break;
                    154:             
                    155:             /***********************************************************\
                    156:             *  For each of following mouse window messages, mp1     contains
                    157:             *  bits indicating whether or not various virtual keys are down,
                    158:             *  and mp2     is a WPOINT containing the mouse coordinates.   The
                    159:             *  keydown bits of mp1     are:  MK_LBUTTON (set if Left Button is
                    160:             *  down); MK_RBUTTON (set if Right Button is down); MK_SHIFT (set
                    161:             *  if Shift Key is down); MK_CONTROL (set if Control Key is down).
                    162:             *  Since this sample does nothing with the mouse message it is
                    163:             *  passed to DefWindowProc for handling
                    164:             \***********************************************************/
                    165: 
                    166:         case WM_MOUSEMOVE:
                    167:         case WM_BUTTON1DOWN:
                    168:         case WM_BUTTON1UP:
                    169:         case WM_BUTTON2DOWN:
                    170:         case WM_BUTTON2UP:
                    171:         case WM_BUTTON1DBLCLK:
                    172:         case WM_BUTTON2DBLCLK:
                    173: 
                    174:         default:
                    175:             /***********************************************************\
                    176:             *  Everything else comes here.  This call MUST exist
                    177:             *  in your window proc.
                    178:             \***********************************************************/
                    179: 
                    180:             return( (ULONG)WinDefWindowProc(hWnd, message, mp1, mp2));
                    181:             break;
                    182:     }
                    183:     return( 0L );
                    184: }

unix.superglobalmegacorp.com

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