home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / wpj_mag / wpjv1n7.zip / INVID.ZIP / INVID.C next >
C/C++ Source or Header  |  1993-06-13  |  2KB  |  96 lines

  1. /* invid.c */
  2.  
  3. #include <windows.h>
  4. #include "invid.h"
  5.  
  6. struct decodeWord {
  7.     WORD Code;
  8.     LONG (*Fxn)(HWND, WORD, WORD, LONG); };
  9.  
  10. struct decodeWord messages[] = {
  11.     WM_CREATE, DoCreate,
  12.     WM_DESTROY, DoDestroy, } ;
  13.  
  14.  
  15.  
  16. int PASCAL WinMain (HANDLE hInstance,
  17.     HANDLE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
  18. {
  19.     MSG msg ;
  20.     if (!hPrevInstance) InitApplication(hInstance);
  21.     InitInstance(hInstance, nCmdShow);
  22.  
  23.     while (GetMessage (&msg, NULL, 0, 0))
  24.     {
  25.         TranslateMessage (&msg) ;
  26.         DispatchMessage (&msg) ;
  27.     }
  28.  
  29.     return (msg.wParam) ;
  30. }
  31.  
  32.  
  33. BOOL InitApplication(HANDLE hInstance)
  34. {
  35.     WNDCLASS wndclass;
  36.  
  37.     wndclass.style = 0 ;
  38.     wndclass.lpfnWndProc = WndProc ;
  39.     wndclass.cbClsExtra = 0 ;
  40.     wndclass.cbWndExtra = 0 ;
  41.     wndclass.hInstance = hInstance ;
  42.     wndclass.hIcon = LoadIcon (hInstance, szAppName) ;
  43.     wndclass.hCursor = LoadCursor (hInstance, IDC_ARROW) ;
  44.     wndclass.hbrBackground = GetStockObject (BLACK_BRUSH) ;
  45.     wndclass.lpszMenuName = NULL ;
  46.     wndclass.lpszClassName = szAppName ;
  47.  
  48.     return(RegisterClass (&wndclass));
  49. }
  50.  
  51.  
  52. BOOL InitInstance(HANDLE hInstance, WORD nCmdShow)
  53. {
  54.     hWnd = CreateWindow (szAppName,
  55.         "Invid",
  56.         DS_SYSMODAL | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
  57.         CW_USEDEFAULT, CW_USEDEFAULT,
  58.         WINDOW_WIDTH, WINDOW_HEIGHT ,
  59.         NULL,
  60.         NULL,
  61.         hInstance,
  62.         NULL) ;
  63.  
  64.     ShowWindow (hWnd, nCmdShow) ;
  65.     UpdateWindow (hWnd) ;
  66.     return (TRUE);
  67. }
  68.  
  69.  
  70. long FAR PASCAL WndProc (HWND hWnd, WORD wMsg, WORD wParam, LONG lParam)
  71. {
  72.     int i;
  73.  
  74.     for(i=0; i < dim(messages); i++)
  75.     {
  76.         if(wMsg == messages[i].Code)
  77.             return((*messages[i].Fxn)(hWnd, wMsg, wParam, lParam));
  78.     }
  79.  
  80.     return(DefWindowProc(hWnd, wMsg, wParam, lParam));
  81. }
  82.  
  83.  
  84. LONG DoCreate(HWND hWnd, WORD wMsg, WORD wParam, LONG lParam)
  85. {
  86. return 0;
  87. }
  88.  
  89.  
  90. LONG DoDestroy(HWND hWnd, WORD wMsg, WORD wParam, LONG lParam)
  91. {
  92.     PostQuitMessage (0) ;
  93.     return 0 ;
  94. }
  95.  
  96.