Annotation of pmsdk/samples/browse/browres.c, revision 1.1

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

unix.superglobalmegacorp.com

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