home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / win_lrn / hooks / journal / wndproc.c < prev   
Encoding:
C/C++ Source or Header  |  1988-02-22  |  2.3 KB  |  98 lines

  1. #include "windows.h"
  2. #include "APP.h"
  3.  
  4. extern HANDLE hInst;
  5.  
  6. extern APPPaint  ( HWND, WORD, LONG );
  7.  
  8. /* Function proto-types of Journal control functions in DLL */
  9. void FAR PASCAL StartRecord();
  10. void FAR PASCAL StopRecord();
  11. void FAR PASCAL StartPlay();
  12. void FAR PASCAL StopPlay();
  13.  
  14. long FAR PASCAL WndProc( HWND, unsigned, WORD, LONG );
  15. BOOL FAR PASCAL About( HWND, unsigned, WORD, LONG );
  16.  
  17. long FAR PASCAL WndProc( hWnd, message, wParam, lParam )
  18. HWND hWnd;
  19. unsigned message;
  20. WORD wParam;
  21. LONG lParam;
  22. {
  23.     FARPROC lpprocAbout;
  24.     HMENU hMenu;
  25.  
  26.     switch (message)
  27.     {
  28.     case WM_SYSCOMMAND:
  29.         switch (wParam)
  30.         {
  31.         case IDSABOUT:
  32.             /* Bind callback function with module instance */
  33.             lpprocAbout = MakeProcInstance( (FARPROC)About, hInst);
  34.             DialogBox( hInst, MAKEINTRESOURCE(ABOUTBOX), hWnd, lpprocAbout );
  35.             FreeProcInstance( (FARPROC)About );
  36.             break;
  37.         default:
  38.             return DefWindowProc( hWnd, message, wParam, lParam );
  39.         }
  40.         break;
  41.  
  42.     case WM_COMMAND:
  43.         switch (wParam) {
  44.            case IDRECORDON:
  45.                 MessageBox( hWnd, (LPSTR)"About to Record!", (LPSTR)"WARNING!", MB_OK );
  46.                 StartRecord();
  47.                 break;
  48.            case IDRECORDOFF:
  49.                 StopRecord();
  50.                 break;
  51.            case IDPLAY:
  52.                 MessageBox( hWnd, (LPSTR)"About to Play!", (LPSTR)"WARNING!", MB_OK );
  53.                 StartPlay();
  54.                 break;
  55.  
  56.            default:
  57.                 return DefWindowProc( hWnd, message, wParam, lParam );
  58.         }
  59.         break;
  60.  
  61.     case WM_DESTROY:
  62.         /* Just in case.  Make sure un-hooked before app dies */
  63.         StopRecord();
  64.         StopPlay();
  65.         PostQuitMessage( 0 );
  66.         break;
  67.  
  68.     case WM_PAINT:
  69.         APPPaint( hWnd, wParam, lParam );
  70.         break;
  71.  
  72.     default:
  73.         return DefWindowProc( hWnd, message, wParam, lParam );
  74.         break;
  75.     }
  76.     return(0L);
  77. }
  78. /*
  79. */
  80.  
  81.  
  82. BOOL FAR PASCAL About( hDlg, message, wParam, lParam )
  83. HWND hDlg;
  84. unsigned message;
  85. WORD wParam;
  86. LONG lParam;
  87. {
  88.     if (message == WM_COMMAND) {
  89.         EndDialog( hDlg, TRUE );
  90.         return TRUE;
  91.         }
  92.     else if (message == WM_INITDIALOG)
  93.         return TRUE;
  94.     else return FALSE;
  95. }
  96. /*
  97. */
  98.